0

我有这个程序需要读取 JComboBox 中不同选定项目的不同文件。我已经让 JComboBox 和一切正常工作,但现在当我尝试调用 Course_loader 代码时它不会运行。这是我尝试从中调用它的代码:

    public static String CourseName;
public static String PlayerName;
public Start_round(){
    try {
        Course_loader cl = new Course_loader();
        cl.loadCourse(CourseName);
    } catch (IOException e) {
    }

现在这里是文件阅读器的代码:

    import java.io.*;
    public class Course_loader {
public static String holes;
public void loadCourse(String s) throws IOException{
    File f = new File("courses\\"+s+".txt");
    BufferedReader reader = new BufferedReader(new FileReader(f));
    holes = reader.readLine();
    reader.close();
    System.out.println("it ran");
}

}

当我调用代码时,它不会打印出“它运行”。我自己检查了我的代码,但我是文件阅读器的新手。请帮忙。提前致谢。

哦,文件在那里,里面有这些词

    test

并且当它尝试打印字符串时,它是空的,这证明东西没有运行。

4

2 回答 2

4

你默默无视IOException

将异常处理更改为Start_round

try
{
    // your "load course" code ...
}
catch (IOException e)
{
    e.printStackTrace();
}

这应该会生成一些输出,让您了解代码出了什么问题FileReader,例如,文件未找到问题。

另一个提示:总是把你的reader.close()电话放在一个finally块中。在您的情况下,这意味着在您的方法中进行一些特定的异常处理loadCourse。搜索java filereader和类似的搜索以寻找最佳实践。另外,做一些关于异常的工作,如果你不太了解这些东西,请尝试/捕获/最后。

于 2012-06-07T19:29:11.240 回答
0
} catch (IOException e) {
}

你的问题就在那里。永远不要那样做。至少记录异常。你在对自己假装没有出错,现在你想知道为什么它不起作用。

于 2012-06-08T00:16:34.150 回答