获得f3时似乎失败了。输出是:
not ready File is null Exception in thread "main" java.lang.NullPointerException at BuabFile.parseBUAB(BuabFile.java:93) at AddressBook.createBrowseForm(AddressBook.java:232) at AddressBook.(AddressBook.java:51) at Main.main(Main.java:4)"
但不是在此之前 - 没有找到错误或任何文件......
答案 0 :(得分:1)
我的猜测是parseBUAB()方法接收“null”参数。这意味着它可能是AddressBook类负责错误。
答案 1 :(得分:0)
我可以看到,您只需使用parseBUAB(..)
值来null
。我无法看到对该方法的调用,因此您必须检查其余代码。
对于您的“未就绪”输出(由于您的BufferedReader f3未准备就绪而创建),API说
如果保证下一个read()不阻止输入,则为true,否则为false。
也许您只是调用它太快而且文件尚未加载。在调用流上的ready()之前使用Thread.sleep()。对于文件I / O来说,阻塞几毫秒也许正常。
第三 - 如果f3
是您要保留的BufferedReader,则必须使用readFile()
方法将其分配给成员文件。但现在我发现了所有这些;)
答案 2 :(得分: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);
答案 3 :(得分:0)
我进一步困惑但是找到了答案 - 我正在使用Windows 7并在Windows xp计算机上试过它并且代码编译得很好并且在文件中读取(其他错误你已经注意到的是无论如何都要通过开发来改变 - 这只是一个方法......)。
我想知道eclipse和打开/读取文件是否存在Windows 7错误......