我有一个关于Java类Reader read()
方法的简单问题。
文档says
读取单个字符。此方法将阻塞,直到字符可用,发生I / O错误或到达流的末尾。
所以我正在尝试将文件message.txt
转换为字符串,并认为read
可以很好地工作,因为它忠实地获取每个字符。我的txt文件有换行符后跟一条消息。
message
我设置此代码来读取包括初始新行在内的每个字符。
private static String readFile(String file) throws FileNotFoundException,IOException{
FileReader r = new FileReader(file);
String str="";
int ch;
while ((ch=r.read())!=-1)
{
System.out.println((char)ch);
str+=(char)ch;
}
return str;
}
但是,我在输出中得到一个额外的字符(可能来自换行符),如下所示。如果有人能够让我了解Reader的这种行为以及我应该做些什么来使它添加一个特殊字符,那真的会有所帮助。
print char
print char
print char m
print char e
print char s
print char s
print char a
print char g
print char e
答案 0 :(得分:0)
这个额外的空间是因为你正在使用“println”。因此,每当它在文件中读取换行符时,它就会打印一个新行,“println”会向它添加一行。 而不是“println”,尝试“打印”。