Java检查文件是否为空: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

我试图将一个文件加载到我的ArrayList中,如果它不存在,程序将创建一个文件。我得到IOException:Null,因为开始时文件为空。如何避免该错误并检查文件是否为空?这是我的密码:

     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,这就是我要找的