0

文字列のリストをファイルに保存し、それらを配列リストに読み込むプログラムを作成しようとしています。これが私の現在のコードです。

ObjectInputStream input = null;

    try {
        input = new ObjectInputStream(new FileInputStream("friends.txt"));
    } catch (FileNotFoundException e) {
        File f = new File("friends.txt");
        try {
            f.createNewFile();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    String obj;

    try {
        while ((obj = (String)input.readObject()) != null) {
            friendly.add(obj);
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

これはヌルポインタ例外を返します。ここで何がうまくいかないのかよくわかりません。

4

1 に答える 1

2

まず、ファイルが存在しない場合、'input' は null になります。

ファイルが存在しない場合をあなたのように処理するための理論的根拠がよくわかりません.File.exists()を介して存在をテストし、存在する場合にのみ開いて読み取りを実行しないのはなぜですか?

それ以外は、別のコメンテーターが言ったように、最初にスタックトレースを提供してください。

于 2012-05-16T01:36:00.443 に答える