gpt4 book ai didi

java - 使用 BufferedReader 时第一个字符被截断

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:39:49 26 4
gpt4 key购买 nike

这是代码:

File file = new File("Hello.txt");
file.createNewFile();
FileWriter write = new FileWriter(file);
BufferedWriter bufWrite = new BufferedWriter(write);
bufWrite.write("HelloWorld");
bufWrite.flush();
bufWrite.close();

FileReader read = new FileReader(file);
BufferedReader bufRead = new BufferedReader(read);
while(bufRead.read()!=-1){
System.out.println(bufRead.readLine());
}
bufRead.close();

在这里,输出是 elloWorld。 “H”不在那里。为什么会这样?不确定我在这里做错了什么!

最佳答案

这是一个令人惊讶的常见问题。

当你做的时候

bufRead.read()

你实际读了一个字符,它不会放回去让你稍后再读。

最简单的解决方案是不这样做。

File file = new File("Hello.txt");
try (PrintWriter pw = new PrintWriter(new FileWriter(file))) {
pw.println("HelloWorld"); // should have a new line
}

try (BufferedReader br = new BufferedReader(new FileReader(file))) {
for (String line; (line = br.readLine()) != null; ) {
System.out.println(line);
}
}

关于java - 使用 BufferedReader 时第一个字符被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17950908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com