【问题标题】:Buffered reader can't load file?缓冲阅读器无法加载文件?
【发布时间】:2014-05-25 15:31:35
【问题描述】:

我正在为学校做一个项目,我想从文件中加载问题。但是,Java 无法加载该文件。我确信文本文件的名称是正确的并且在正确的目录中,但它们在这里:

游戏>src 游戏>出>制作>游戏

private static void init(){
    BufferedReader br = null;
    ArrayList<String> strings= new ArrayList<String>();
    try {

        String sCurrentLine;

        br = new BufferedReader(new FileReader(new File("questions.txt")));

        while ((sCurrentLine = br.readLine()) != null) {
            strings.add(sCurrentLine);
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (br != null)br.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    int i = 0;
    while(i < strings.size()){
        String text = strings.get(i++);
        int numAnswers = Integer.parseInt(strings.get(i++));
        ArrayList<String> answers = new ArrayList<String>();
        for (int i2 = 0; i2 < numAnswers; i2++){
            answers.add(strings.get(i++));
        }
        questions.add(new Question(text, answers));
    }
}

【问题讨论】:

  • 你读得怎么样?
  • @user432 糟糕,已修复。
  • 此解决方案要求文件位于您的工作目录中。将它移到那里或使用getResourceAsStream
  • @Banthar 你是怎么做到的?

标签: java file intellij-idea bufferedreader fileinputstream


【解决方案1】:

尝试scr/questions.txt 作为路径。

br = new BufferedReader(new FileReader(new File("src/questions.txt")));

【讨论】:

  • 酷,成功了!当我编译到 jar 时它会起作用吗?
  • 是的,为什么不……!!这是工作目录的相对路径。
  • 但是如果它不在那个目录中怎么办,比如 jar 在另一台计算机上?
  • 问一个关于这个的另一个问题,详细说明。
猜你喜欢
  • 1970-01-01
  • 2023-03-28
  • 2013-03-29
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 1970-01-01
  • 2017-09-23
相关资源
最近更新 更多