文件处理文件路径

时间:2012-11-21 10:52:33

标签: java android android-sdcard android-file

基本上我有两个问题。我使用以下代码来读写z文本文件。

    File myFile = new File("/sdcard/mysdfile.txt");
    myFile.createNewFile();
    FileOutputStream fOut = new FileOutputStream(myFile);
    OutputStreamWriter myOutWriter = 
                            new OutputStreamWriter(fOut);
    myOutWriter.append("my text here");
    myOutWriter.close();

每次我想要OPEN_OR_CREATE时创建一个新文件(如果文件已存在则不创建新文件)

我的第二个问题是如何更改路径“/sdcard/mysdfile.txt”我希望此文件存储在我的sdcard中 - > subFolder1 - > SubFolder2

Thnaks

6 个答案:

答案 0 :(得分:0)

替换

FileOutputStream fOut = new FileOutputStream(myFile);

FileOutputStream fOut = new FileOutputStream(myFile, true); //true means append mode.

除此之外,我有一个建议。

永远不要在代码中硬编码/sdcard,而是考虑写作。

File myFile = new File(Environment.getExternalStorageDirectory(),"mysdfile.txt");

答案 1 :(得分:0)

尝试使用我的解决方案写入文本结尾文件

private void writeFile (String str){
      try {
          File f = new File(Environment.getExternalStorageDirectory().toString(),"tasklist.txt");
          FileWriter fw = new FileWriter(f, true);

          fw.write(str+"\n");
          fw.flush();
          fw.close();
      } catch (Exception e) {
      }
}

*文件(Environment.getExternalStorageDirectory()的toString()+ “您/ PTH /这里”, “tasklist.txt”);

答案 2 :(得分:0)

请勿使用硬编码的/sdcard/mnt/sdcard,否则您的应用会因设备在该存储的位置或挂载点不同而失败。要获得正确的位置,请使用

Environment.getExternalStorageDirectory();

请参阅docs here

要将内容附加到现有文件,请使用new FileOutputStream(myFile, true);而不只是new FileOutputStream(myFile); - 请参阅docs on that constructor here

至于

  

如何更改路径“/sdcard/mysdfile.txt”

除了如上所述摆脱/sdcard之外,只需在路径中添加子文件夹:MyFolder1/MyFolder2/mysdfile.txt。请注意这些文件夹必须存在或路径无效。您始终可以通过调用myFile.mkdirs()来创建它。

答案 3 :(得分:0)

File dir = Environment.getExternalStorageDirectory();

File f = new File(dir+"/subFolder1/",xyz.txt); <-- HOW TO USE SUB FOLDER

if(file.exists())
{
     // code to APPEND
}
else
{
     // code to write new one
}

答案 4 :(得分:0)

1&GT; OPEN_OR_CREATE 你可以尝试或者可以用@ Vipul的建议替换MODE_APPEND

FileOutputStream fOut = openFileOutput(your_path_file, MODE_APPEND);

//it means if the file is exist the content you want write will append into it.

2 - ;存储在我的SD卡中 - &gt; subFolder1 - &gt; SubFolder2

您可以使用Environment.getExternalStorageDirectory()。getAbsolutePath()来获取SDCard的完整文件路径。然后连接字符串以获取所需的文件路径。例如:

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "myFile.txt";

File f = new File(baseDir + File.separator  + subfolder1 + File.separator +  subfoler2, fileName);

答案 5 :(得分:0)

在Java 7中,我们可以这样做:

Path path = Paths.get("/sdcard/mysdfile.txt");
BufferedWriter wrt = Files.newBufferedWriter(path, StandardCharsets.UTF_8, StandardOpenOption.APPEND);