所以问题是我每次尝试加载NetBeans或eclipse上的代码时都会抛出异常,但是当我尝试通过TextMate运行它时一切都很好!
我试图把绝对地址,改变文本文件等。没有帮助!
有人可以帮助我或告诉为什么它不能运行与IDE?
感谢void loadFile() {
try {
list = new LinkedList<Patient>();
FileReader read = new FileReader("a.txt");
Scanner scan = new Scanner(read);
while (scan.hasNextLine()) {
String Line = scan.nextLine();
String[] subArray = new String[5];
subArray = Line.split(",");
int a = Integer.parseInt(subArray[4]);
list.add(new Patient(Integer.parseInt(subArray[0]), subArray[1], subArray[2], subArray[3], a));
}
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "The file does not exist!" + "nProgram is terminating.", "File Not Found", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
cap = list.size();
search_names = new int[cap];
for (int i = 0; i < list.size(); i++) {
search_names[i] = i;
}
setNames(search_names);
}//end loadFile
调试日志:Have no file for /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/jsfd.jar
Have no file for /System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Resources/Java/JavaRuntimeSupport.jar
Have no file for /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/laf.jar
Have no file for /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/sunrsasign.jar
}
在netbeans中,默认的工作目录总是根目录,我的意思是包含名为"src", "build"等文件夹的文件夹。将文件与这些文件夹放在一起,就可以了。
这是NetBeans IDE 7.0.1的一步一步的程序
- 在类别中选择"运行"。
- 在主类中选择当前的java文件。
- 在参数中选择你想要读取的文件,例如abc.txt或abc.java
- 在"工作目录"中写下abc.txt或abc.java文件所在的目录。 单击OK关闭项目属性。在运行程序时,不要忘记选择你的项目作为主项目。
- 然后按键盘上的F^键。也就是说,你必须运行你的主项目,而不是只运行你当前的java文件。就这样…享受! !
终于找到解决办法了
在eclipse中,您应该将目标文件放在项目文件夹中。我猜同样适用于NetBeans。
我有我的目标文件在"src"文件夹(实际的代码文件)。事实上,我必须将其更改为项目文件夹所在的上部文件夹。
简单易懂
可能您在不同的设置中有不同的"工作目录"。您可以像这样打印它来检查您在哪个目录中:
System.out.println(new File(".").getAbsoluteFile());
在eclipse中,您可以在运行配置,参数选项卡中设置工作目录
试试BufferedReader?
EDIT:编辑以显示更接近您的代码的示例。我在使用文件阅读器时遇到了异常。但能够.println
与BufferedReader。我没有使用Scanner
编辑2:我也能让你的代码工作。与扫描器等(当使用全路径)(例如:FileReader read = new FileReader(""C:\myfolder\folder\a.txt"
。嗯。
try {
list = new LinkedList<Patient>();
BufferedReader scan = new BufferedReader(new FileReader("C:\a.txt"));
String lines;
try {
// Scanner scan = new Scanner(read);
while ((lines = scan.readLine()) != null) {
//I just printed lines you will do your stuff here
System.out.println(lines);
}
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "The file does not exist!" + "nProgram is terminating.", "File Not Found", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
右键单击文本文件,选择属性并复制路径并粘贴到您输入文件名的位置
假设你想在netbeans中添加test.txt
如果你的项目在C:myProject把文本文件在C:myProject文件直接而不是在C:myProjectsrc。然后使用:
File File = new File("test.txt");
Scanner in = new Scanner(file);
或
扫描器输入= new扫描器(new File("test.txt"));