1

我正在尝试访问数据文件以获取我的“测验”应用程序的问题和答案。如果我从桌面上的文件访问该文件,它工作正常。如果我将文件拖放到我的 netbeans 中,我似乎无法访问它。该文件与我的其他课程一起位于“测验”包中。这是有效的代码,但我想使用 netbeans 文件。

String fileName = "C:/Users/Michael/Desktop/QUIZ.DAT";
 try {
        //Make fileReader object to read the file
        FileReader file = new FileReader(new File(fileName));
        BufferedReader fileStream = new BufferedReader(file);
    } catch (Exception e) {
        System.out.println("File not found");
    }

要尝试访问 netbeans 上的文件,我使用它,但找不到它。

String fileName = "quiz/Quiz.DAT";
4

3 回答 3

3

试试这个,其中 MyClass 是类名。我假设 quiz.dat 文件位于类的同一个包中。

InputStream f = MyClass.class.getResourceAsStream("QUIZ.DAT");
BufferedReader bReader = new BufferedReader(new InputStreamReader(f));
StringBuffer sbfFileContents = new StringBuffer();
String line = null;
while ((line = bReader.readLine()) != null) {
    sbfFileContents.append(line);
}
System.out.println(sbfFileContents.toString());
于 2013-08-23T09:07:11.220 回答
2

JJPA 提供了正确的代码。但让我更好地增强它。

Project
   com.io
      test.txt
   com.root
      AccessFile.java

这是我的程序结构。我想从包中访问文件io所以这里是代码。

package com.root;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class AccessFile {
    public static void main(String args[]){
        try{
            InputStream f = AccessFile.class.getResourceAsStream("../io/test.txt");
            BufferedReader bReader = new BufferedReader(new InputStreamReader(f));
            StringBuffer sbfFileContents = new StringBuffer();
            String line = null;
            while ((line = bReader.readLine()) != null) {
                sbfFileContents.append(line);
            }
            bReader.close();
            f.close();
            System.out.println(sbfFileContents.toString());
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}
于 2013-08-23T10:05:03.033 回答
0

如果您尝试读取 JAVA 项目中的文件并且 netbeans 无法找到它,请将文件放在项目的根目录中,它应该能够找到它。

于 2018-06-11T22:59:46.487 回答