如何将内容写入文件

时间:2011-11-30 05:34:55

标签: java

try {
    File file = new File("sample.txt");
    FileWriter fw = new FileWriter(file,true);
    fw.append('d');
    fw.write(100);
    fw.close();
} catch(IOException exp) {
    exp.printStackTrace();
}

我无法在文件中附加或写入任何内容。

但我可以从文件中读取内容。

我的代码有什么问题吗?

4 个答案:

答案 0 :(得分:2)

听起来你可能正在写一个文件 - 但不是你想要的文件。如果没有抛出任何异常(并且吞下异常,只是将其写入标准输出,很少是正确的方法)那么该文件将存在于某处

它将在代码运行的任何目录中 - 可能与包含您正在阅读的sample.txt文件的目录相同。我建议您浏览文件系统,并检查Eclipse中的Run Configuration以查看该应用程序的工作目录。

顺便说一下,你应该在finally块中关闭作者,这样即使出现异常也会关闭它,如下所示:

File file = new File("sample.txt");
FileWriter fw = null;
try {
    fw = new FileWriter(file, true);
    fw.append('d');
    fw.write(100);
} catch(IOException) {
    // Ideally do something to indicate the failure to the caller
    // - do you need to catch this at all?
    e.printStackTrace();
} finally {
    // From Guava
    Closeables.closeQuietly(fw);
}

显然你可以在没有Guava的情况下做到这一点,但它会让事情变得更简单 - 而不仅仅是在这里。如果您使用的是Java 7,则可以使用try-with-resources statement使其更简单。

答案 1 :(得分:0)

http://www.roseindia.net/java/example/java/io/java-write-to-file.shtml 如果代码正确并且您仍然遇到问题,您可以刷新上下文。它“刷新流” 这个链接可以提供帮助!

答案 2 :(得分:0)

之前说过,在构建/清理过程中文件可能会被清除。尝试指定文件的绝对路径并再次运行它。你写的所有内容都是正确的,没有提供的更正。

try { 
  File file = new File("C:\sample.txt"); // for Windows or possibly just "/sample.txt" for *nix
  FileWriter fw = new FileWriter(file,true); 
  fw.append('d'); 
  fw.write(100); 
} catch(IOException e) { 
  e.printStackTrace(); 
} finally { 
  // Good practice to move close to a finally block
  fw.close();
}

答案 3 :(得分:0)

您可以尝试使用以下语法

String filename = "C:/sample.txt";

FileWriter fw = new FileWriter(filename,true);