【问题标题】:Not writing to text file不写入文本文件
【发布时间】:2013-12-03 23:41:05
【问题描述】:

我目前在我的代码中写入文本文件时遇到问题,整个程序都被命中,所有内容都将打印到控制台。没有错误。但是文件是空的。有什么建议吗?

public textFiles(String filePath)
{
File file = new File(filePath);

try{
    fstream = new FileWriter(filePath,true);
}
catch (Exception e){//Catch exception if any
      System.err.println("Error: " + e.getMessage());
    }
     out = new BufferedWriter(fstream);
                System.out.println("try");

        addToText("WOOOOHOOO");
          System.out.println(file.exists());


}
public void addToText(String Line)
{
    try {
        out.write(Line);
        out.newLine();
    } catch (IOException e) {
        System.err.println("writing Error");
    }
    System.out.println("SHOULDA F****** WORKED");
}

【问题讨论】:

  • 你要关闭作者吗?
  • 您没有关闭编写器,您的代码不完整且有错误。
  • 写在 try 子句中。在创建异常的情况下编写是没有意义的。还有a simpler way:Files.write(Paths.get(file.getName()), content.getBytes());
  • 感谢 cmets。我的代码没有错误木马。原来是因为我没有关闭作者。

标签: java file text file-io


【解决方案1】:

您永远不会关闭流,因此也可能永远不会刷新流 - 文本在您打印出来时基本上会被缓存,并以块的形式刷新到文件中(通常是比您大得多的块)重写,因此缺少输出。)

确保在完成后关闭流 (fstream.close();),它应该可以正常工作(流将在关闭时自动刷新以清除任何输出)。

【讨论】:

    【解决方案2】:

    尝试使用此代码在任何驱动器中写入 .txt 文件。

                      try
                      {
                      String ss="html file write in java";
                      File file= new File("F:\\inputfile\\aa.txt");
                      FileWriter fwhn= new FileWriter(file);
                      fwhn.write(ss);
                      fwhn.flush();
                      }
                      catch(Exception ex)
                      {
    
                      }
    

    【讨论】:

    • 当此代码刷新时,它会捕获所有异常(不仅仅是 IOException),对结果不执行任何操作,并且仍然不会关闭流...至少可以说是不好的做法!
    • 这段代码只是在电脑的任意驱动器中写入一个.txt文件
    猜你喜欢
    • 2013-05-18
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    相关资源
    最近更新 更多