Java检查文件是否为空:IOException:null
我试图将一个文件加载到我的ArrayList中,如果它不存在,程序将创建一个文件。我得到IOException:Null,因为开始时文件为空。如何避免该错误并检查文件是否为空?这是我的密码:Java检查文件是否为空:IOException:null,java,file-io,Java,File Io,我试图将一个文件加载到我的ArrayList中,如果它不存在,程序将创建一个文件。我得到IOException:Null,因为开始时文件为空。如何避免该错误并检查文件是否为空?这是我的密码: File f = new File(fileName); try { if( !f.exists() ){ f.createNewFile(); } inputStream = new ObjectInputSt
File f = new File(fileName);
try {
if( !f.exists() ){
f.createNewFile();
}
inputStream = new ObjectInputStream(new FileInputStream(f));
scores = (ArrayList<Score>) inputStream.readObject();
} catch (IOException e) {
System.out.println("IO Error: " + e.getMessage());
} finally {
...
}
File f=新文件(文件名);
试一试{
如果(!f.exists()){
f、 createNewFile();
}
inputStream=新对象inputStream(新文件inputStream(f));
分数=(ArrayList)inputStream.readObject();
}捕获(IOE异常){
System.out.println(“IO错误:+e.getMessage());
}最后{
...
}
用于获取文件的大小和字节数:
此抽象路径名表示的文件的长度(以字节为单位),如果文件不存在,则为0L。某些操作系统可能会为表示系统相关实体(如设备或管道)的路径名返回0L
在我看来,你的程序需要一点小小的重构,然后它就不会尝试加载空文件了
File f = new File(fileName);
try {
if( f.length() == 0 ){
f.createNewFile();
} else {
inputStream = new ObjectInputStream(new FileInputStream(f));
scores = (ArrayList<Score>) inputStream.readObject();
}
} catch (IOException e) {
System.out.println("IO Error: " + e.getMessage());
} finally {
...
File f=新文件(文件名);
试一试{
如果(f.长度()==0){
f、 createNewFile();
}否则{
inputStream=新对象inputStream(新文件inputStream(f));
分数=(ArrayList)inputStream.readObject();
}
}捕获(IOE异常){
System.out.println(“IO错误:+e.getMessage());
}最后{
...
您的文件名是什么?nx,这就是我要找的