gpt4 book ai didi

java - 为什么我的 Java 代码中会出现 EOFException?

转载 作者:行者123 更新时间:2023-12-01 18:36:01 25 4
gpt4 key购买 nike

我正在尝试读取 csv 文件并将输出显示在控制台中。但是,我不明白为什么我会遇到文件结束异常并且控制台中没有显示任何内容?

异常消息是:

java.io.EOFException
at java.io.DataInputStream.readFully(DataInputStream.java:197)
at java.io.DataInputStream.readUTF(DataInputStream.java:609)
at java.io.DataInputStream.readUTF(DataInputStream.java:564)
at ByteIO.main(ByteIO.java:17)

我的代码是:

import java.io.*;
import javax.swing.*;

public class ByteIO
{

public static void main(String[] args)
{
try
{
FileInputStream fis = new FileInputStream("BaseballNames1.csv");
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);

while(dis.available() > 0)
{
String header = (dis.readUTF());

String firstName = (dis.readUTF());
String lastName = (dis.readUTF());
String fullName = (firstName + " " + lastName);

int birthDay = (dis.readInt());
int birthMonth = (dis.readInt());
int birthYear = (dis.readInt());
String birthDate = (birthMonth + "/" + birthDay + "/" + birthYear);

int weight = (dis.readInt());
double height = (dis.readDouble());

System.out.println( header + fullName + birthDate + weight + height);

dis.close();
}
}
catch(EOFException eof)
{
System.out.println("End of File!");
}
catch(FileNotFoundException fe)
{
System.out.println("File not found!");
}
catch(IOException ie)
{
ie.printStackTrace();
}
}
}

最佳答案

我猜测您的文件不是二进制数据文件,而是填充了文本。如果是这样,请使用扫描仪或读取器,例如包装在 BufferedReader 中的 FileReader,而不是 DataInputStream。

编辑:这是一个 CSV 文件,所以当然是文本!
您可能需要使用 CSV 解析器以及 BufferedReader 或 Scanner。

关于java - 为什么我的 Java 代码中会出现 EOFException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21976093/

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