当文件在文件夹中时,Netbeans FileReader FileNotFound异常



所以问题是我每次尝试加载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的一步一步的程序

  1. 在类别中选择"运行"。
  2. 在主类中选择当前的java文件。
  3. 在参数中选择你想要读取的文件,例如abc.txt或abc.java
  4. 在"工作目录"中写下abc.txt或abc.java文件所在的目录。
  5. 单击OK关闭项目属性。在运行程序时,不要忘记选择你的项目作为主项目。
  6. 然后按键盘上的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"));

相关内容

  • 没有找到相关文章