【发布时间】:2020-07-15 05:40:27
【问题描述】:
我写了一些代码来逐个字符地读取文本文件,然后将其打印到屏幕上,但结果让我感到困惑,这里是:
这是我写的代码
import java.io.*;
import java.nio.charset.StandardCharsets;
public class learnIO
{
public static void main(String[] args) throws IOException{
var in = new InputStreamReader(new FileInputStream("test1.txt"), StandardCharsets.UTF_8);
while(in.read() != -1){
System.out.println((char)in.read());
}
}
}
文件的内容和编码方案:
文件 test1.txt
test1.txt:ASCII 文本
猫 test1.txt
你好,世界!
结果是:
e
l
,
w
r
d
有些char漏掉了,为什么会这样?
【问题讨论】:
-
你做了一会儿(in.read() != -1)。这会读取并丢弃一个字符。我也会使用 BufferedReader 而不是 InputStreamReader。
标签: java string input io stream