【问题标题】:Java: FileReader and FileWriter not working togetherJava:FileReader 和 FileWriter 不能一起工作
【发布时间】:2019-02-18 10:05:06
【问题描述】:

所以,我正在尝试制作一个程序,该程序可以仅使用 FileWriter 和 FileReader 编写然后读取完全相同的文本文件,但由于某种原因,当我将这两个类放在同一代码中时,FileWriter 可以正常工作,但 FileReader 没有,我得到一个空输出。

import java.io.*;
import java.util.Scanner;
public class ex2 {
    public static void main(String[] args) {
        File file = new File("C:\\a.txt");
        Scanner scanner = new Scanner(System.in);
        try {
            FileReader reader = new FileReader(file);
            FileWriter writer = new FileWriter(file);
            writer.write(scanner.nextLine());
            int ch;
            while ((ch = reader.read()) != -1) {
                System.out.println((char)ch);
            }
            scanner.close();
            reader.close();
            writer.close();
        } catch (Exception e) {

        }

    }
}

这就是我所说的代码。我可以向 a.txt 写入任何内容,但阅读器似乎无法读取任何内容。奇怪的是,如果我使用完全相同的代码但没有文件写入部分,FileReader 会正常工作。我究竟做错了什么?提前致谢!

【问题讨论】:

  • 尝试在writer.write(...); 之后执行writer.flush();

标签: java filereader filewriter


【解决方案1】:

FileWriter 对象被缓冲。这意味着他们不会在您致电write 后立即写下您提供给他们的所有内容。他们会等到有一定数量要写,然后一次性写完。只需添加这一行:

writer.flush();

在你的写作和阅读之间。

【讨论】:

  • 哦,我明白了,效果很好!非常感谢您的解释!
  • @Merto 很高兴我能帮上忙!
猜你喜欢
  • 2014-02-21
  • 2014-01-07
  • 2019-08-17
  • 2016-11-23
  • 2015-05-16
  • 2017-10-14
  • 2012-06-01
  • 2011-11-05
  • 2018-05-20
相关资源
最近更新 更多