0

http://pastebin.com/m5fa7685e

f3 を取得するときに失敗するようです。出力は次のとおりです。

準備ができていない

ファイルがヌルです
スレッド「メイン」での例外 java.lang.NullPointerException
    BuabFile.parseBUAB (BuabFile.java:93) で
    AddressBook.createBrowseForm (AddressBook.java:232) で
    アドレスブック (AddressBook.java:51)
    Main.main(Main.java:4) で"

しかし、それ以前ではありません-ファイルが見つからないというエラーや何か...

4

4 に答える 4

1

私の推測では、parseBUAB()メソッドは「null」引数を受け取ります。これは、AddressBookクラスがエラーの原因である可能性があることを意味します。

于 2009-11-23T17:35:13.270 に答える
0

私はさらに混乱していますが、ある種の答えを見つけました-私はWindows 7を使用していて、Windows XPコンピューターで試してみましたが、コードは正常にコンパイルされ、ファイルを読み取ります(多くの人が指摘した他のエラーはとにかく変更する必要があります開発を通じて-これは邪魔になる1本の棒でした...)。

Eclipseとファイルのオープン/読み取りでWindows7のエラーが発生するのではないかと思います...

于 2009-11-23T18:05:46.233 に答える
0

私が見る限りparseBUAB(..)null値を指定して呼び出すだけです。そのメソッドの呼び出しが表示されないので、コードの残りの部分を確認する必要があります。

BufferedReader f3が「準備ができていない」ために作成された「準備ができていない」出力について、APIは言う

次の read() が入力をブロックしないことが保証されている場合は true、それ以外の場合は false。

呼び出しが速すぎて、ファイルがまだロードされていない可能性があります。ストリームで ready() を呼び出す前に、 Thread.sleep() で遊んでください。ファイル I/O では、数ミリ秒のブロックが正常な場合があります。

そして 3 つ目 -f3保持したい BufferedReader の場合は、それをreadFile()メソッド内のメンバー ファイルに割り当てる必要があります。しかし、今私が見つけたのはそれだけです;)

于 2009-11-23T17:36:21.537 に答える
0

BuabFile.file静的フィールドに値を割り当てるのを忘れたようです。これをメソッドの最後に追加することができますreadFile():

BuabFile.file = f3;

あなたのAddressBook.createBrowseForm方法は次のようになると思います:

String filename = ...;
BuabFile buab = new BuabFile(filename);
buab.readFile();
ArrayList<String> buabLines = buab.returnFile(); // Returns null because readFile() never assigned a value to BuabFile.file
ArrayList<Buab> buabList = buab.parseBUAB(buabLines);
于 2009-11-23T17:37:31.673 に答える