Java检查文件是否为空:IOException:null

时间:2013-05-09 11:33:05

标签: java file-io

我正在尝试将文件加载到我的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 {
         ...
     }

2 个答案:

答案 0 :(得分:6)

使用File.length()获取文件的大小字节数:

  

此抽象路径名表示的文件的长度(以字节为单位),如果该文件不存在,则为0L。某些操作系统可能返回0L表示路径名,表示依赖于系统的实体,例如设备或管道。

答案 1 :(得分:1)

在我看来,您的程序需要进行一些重组,然后它不会尝试加载空文件

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 {
         ...