无法找到文件...使用eclipse和file / filereader / bufferedreader

时间:2009-11-23 17:29:32

标签: java bufferedreader

http://pastebin.com/m5fa7685e

获得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)"

但不是在此之前 - 没有找到错误或任何文件......

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错误......