1

我四处寻找这个,但我找不到灵魂。

抱歉我的描述不好。我不太擅长这个。

我有一个 UI 类它调用“乐透”类。

该乐透类构造函数称为名为 readData() 的方法 readData 正在使用 BufferedReader 从文件中读取

我没有收到错误消息,但它只是没有阅读。它卡在 BufferedReader fr = new BufferedReader... 上,然后去抓东西。

如果它的文件未找到问题,我将如何让它跟踪我的文件在哪里。我使用eclipse,程序存储在我的usb上。我需要把它交给我的老师,所以我不能只放一个位置。是否有代码可以跟踪我的程序在哪里,然后从那个文件夹中获取文件?

这是正在使用的代码。

导入java.io.*;

//contructor

public Lotto()
{
    try
    {
        readData();
        nc = new NumberChecker();
    }
    catch(IOException e)
    {
        System.out.println("There was a problem");
    }
}

private void readData() throws IOException
{
    //this method reads winning tickets date and pot from a file

    BufferedReader file = new BufferedReader (new FileReader("data.txt"));


    for(int i=0;i<5;i++)
    {
        System.out.println("in "+i);
        winningNums[i] = file.readLine();
        winningDates[i] = file.readLine();
        weeksMoney[i] = Integer.parseInt(file.readLine());
        System.out.println("out "+i);
    }

    file.close();

}
4

2 回答 2

0

尝试在 try catch 中包围 BufferedReader 并查找文件未找到异常以及 IO 异常。还可以尝试使用双反斜杠输入完全限定的路径名​​。

BufferedReader file;
    try {
        file = new BufferedReader (new FileReader("C:\\filepath\\data.txt"));

         for(int i=0;i<5;i++)
            {
                System.out.println("in "+i);
                winningNums[i] = file.readLine();
                winningDates[i] = file.readLine();
                weeksMoney[i] = Integer.parseInt(file.readLine());
                System.out.println("out "+i);
            }
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
于 2013-06-16T22:38:38.180 回答
0

如果您在这行代码中遇到错误

BufferedReader file = new BufferedReader (new FileReader("data.txt"));

那么它可能是一个FileNotFoundException

确保 data.txt 文件与已编译的 .class 文件位于同一文件夹中,而不是与 .java 源文件位于同一文件夹中。

最好对您的文件 ex 使用正确的根目录。c:\my\path\data.txt

不要忘记\

于 2013-06-16T22:24:55.997 回答