【发布时间】:2016-03-30 11:03:55
【问题描述】:
我有一段时间使用 Google,但我仍然感到困惑。当我使用 FileOutputStream 将一些文本写入 txt 文件,然后使用 FileInputStream 读取我的文件时,一切正常。但是当我在我的 txt 文件中手动输入一些单词,然后以 UTF-8 格式保存时,我得到了 EOFException。 这是我的输入代码:
StringBuilder s = new StringBuilder();
FileInputStream inputStream = new FileInputStream("filename");
DataInputStream in = new DataInputStream(inputStream);
while (in.available()>0) {
s.append(in.readUTF());
}
in.close();
System.out.println(s);
【问题讨论】:
-
AFAIK
in.available()返回可用字节数,而in.readUTF()可能读取跨越超过 1 个字节的字符。如果不是你应该检查你的文件编码,可能是你使用的编辑器搞砸了。 -
顺便说一句,尝试使用
new BufferedReader( new InputStreamReader(inputStream, "UTF-8")),这样可以更轻松地从文件中读取字符串(例如,有一个readLine()方法)。
标签: java