【问题标题】:Saving Android text file does not write text in the file保存Android文本文件不会在文件中写入文本
【发布时间】:2015-01-24 11:31:28
【问题描述】:

此代码的目标是将名为 test.txt 的文本文件保存在 ABCPrint 文件夹中。
它当前正在创建文件夹并创建 test.txt 文件,但是当我打开文件时,其中没有文本。我已经尝试了所有方法,看起来这不是权限问题。

有没有人发现下面的代码有什么问题会阻止它把字符串写入文件?

try {

    File testFolder = new File(Environment.getExternalStorageDirectory(),"ABCPrint");
    testFolder.mkdirs();

    File file = new File(testFolder, "test.txt");
    boolean isnew =file.createNewFile();

    FileOutputStream fileOut = openFileOutput(file.getName(), Context.MODE_WORLD_WRITEABLE);
    OutputStreamWriter outputWriter = new OutputStreamWriter(fileOut);

    outputWriter.write("Hello World!");
    outputWriter.write("\n");
    outputWriter.flush();
    outputWriter.close();
    fileOut.flush();
    fileOut.close();

} catch (Exception e) {

    Log.i("Error", "Here", e);
}

【问题讨论】:

标签: java android file-io fileoutputstream android-external-storage


【解决方案1】:

每次调用此行时,都会再次创建您的文件。还有另一种简单的方法:

File testFolder = new File(
            Environment.getExternalStorageDirectory(),
            "ABCPrint");
if (!testFolder.exists())
{
    try
    {
        testFolder.createNewFile();
    } 
    catch (IOException e){
        e.printStackTrace();
    }
}
try
{
    //BufferedWriter for performance, true to set append to file flag
    BufferedWriter buf = new BufferedWriter(new FileWriter(testFolder, true)); 
    buf.append("Hello World!");
    buf.newLine();
    buf.close();
}
catch (IOException e){
    e.printStackTrace();
}

祝你好运。

【讨论】:

  • 老实说,我现在确定原版出了什么问题,但是除了这个小修复 BufferedWriter buf = new BufferedWriter(new FileWriter(testFolder + "/testfile.txt", true));
猜你喜欢
  • 2013-05-18
  • 1970-01-01
  • 2013-07-10
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 2014-05-15
相关资源
最近更新 更多