我正在尝试访问数据文件以获取我的“测验”应用程序的问题和答案。 如果我从桌面上的文件访问该文件,它可以正常工作。如果我将文件拖放到我的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";
答案 0 :(得分: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());
答案 1 :(得分: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();
}
}
}
答案 2 :(得分:0)
如果您正在尝试读取JAVA项目中的文件并且netbeans无法找到它,请将该文件放在项目的根目录中,它应该能够找到它。