我刚刚开始使用java中的数据文件而且我不知道如何定义循环来读取整个文件,而不仅仅是一行。我绝对不确定我是否正确思考::
public static void main(String[] args) throws IOException {
DataInputStream dis = new DataInputStream(new FileInputStream("data.dat"));
String name = null;
do {
name = dis.readUTF();
System.out.println(name);
} while (!name.equals(null));
dis.close();
}
当我尝试这种方式时,它会向我展示我想要的东西,但是出现了这种错误:
szampon 8.80 120
线程中的异常" main" java.io.EOFException的
zel 9.23 300
意大利面12.99 140 at java.base / java.io.DataInputStream.readUnsignedShort(DataInputStream.java:345) 在java.base / java.io.DataInputStream.readUTF(DataInputStream.java:594) at java.base / java.io.DataInputStream.readUTF(DataInputStream.java:569) 在com.company.Main.main(Main.java:13)
使用退出代码1完成处理
答案 0 :(得分:0)
进行此更改
public static void main(String[] args) throws IOException {
DataInputStream dis = new DataInputStream(new FileInputStream("data.dat"));
String name = null;
do {
name = dis.readUTF();
System.out.println(name);
} while ( dis.available() > 0);
dis.close();
}
readUTF方法不会返回null,因此您需要检查是否有可供读取的字节。
答案 1 :(得分:0)
希望这能帮助你@Pawel
DataInputStream dis = new DataInputStream(new FileInputStream("data.dat"));
StringBuffer inputLine = new StringBuffer();
String tmp;
while ((tmp = dis.readLine()) != null) {
inputLine.append(tmp);
System.out.println(tmp);
}
dis.close();