2009-11-23 70 views

回答

1

我的猜測是parseBUAB()方法收到一個「空」參數。這意味着它可能是AddressBook類負責該錯誤。

0

從所有我可以看到,你只需撥parseBUAB(..)null價值。我看不到該方法的調用,因此您必須檢查其餘的代碼。

爲了您的「沒有準備好」輸出,這是創建,因爲你的BufferedReader f3是「沒有準備好」,該API稱

真要是一個read()保證不阻塞輸入否則返回false。

也許你只是稱它太快,文件尚未加載。在流中調用ready()之前,使用Thread.sleep()來玩。也許幾毫秒的阻塞對於文件I/O來說是正常的。

第三 - 如果f3是要保留的BufferedReader,則必須將其分配給readFile()方法中的成員文件。但現在,我發現這一切;)

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); 
0

我很困惑,但進一步發現一個答案排序 - 我使用的是Windows 7,並且已經在Windows XP電腦上試過了,代碼編譯得很好,並讀取了文件(您發現的其他錯誤無論如何都要通過開發進行更改 - 這只是一種方式...)。

我想知道是否有一些Windows 7與日食和打開/讀取文件的錯誤...