2

所以问题是每次我尝试在 NetBeans 或 Eclips 上加载下面的代码时都会抛出异常,但是当我尝试通过 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 }

4

7 回答 7

4

在 netbeans 中,默认工作目录始终是根文件夹,我的意思是包含名称为“src”、“build”等文件夹的文件夹。将文件与这些文件夹一起放置,它就可以解决问题。

于 2011-08-17T11:31:06.933 回答
3

这是 NetBeans IDE 7.0.1 中的分步过程

  1. 单击文件菜单。
  2. 单击项目属性。
  3. 在类别中,选择运行。
  4. 在主类中,您选择当前的 java 文件。
  5. 在 Arguments 中选择要读取的文件,例如 abc.txt 或 abc.java
  6. 并在工作目录中记下此 abc.txt 或 abc.java 所在的文件夹的路径。
  7. 单击确定关闭项目属性。
  8. 在运行程序时不要忘记选择您的项目作为主项目。
  9. 然后单击键盘上的 F^。即你必须运行你的主项目而不是仅仅运行你当前的java文件。就是这样......享受!!!!
于 2011-09-27T15:31:47.537 回答
1

终于找到了解决办法

在 Eclipse 中,您应该将目标文件放在项目文件夹中。猜想同样适用于 NetBeans。

我的目标文件位于“src”文件夹中(实际代码文件所在的位置)。事实上,我必须将其更改为项目文件夹所在的上层文件夹。

简单易行。

于 2011-09-19T06:30:05.640 回答
0

试试 BufferedReader?

编辑:编辑以更接近您的代码显示示例。使用文件阅读器时出现异常。但能够.println使用 BufferedReader。我没用Scanner

EDIT2:我也能让你的代码工作。使用扫描仪等(使用完整路径时)(例如: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);     
        }
于 2011-08-17T11:32:11.593 回答
0

右键单击您的文本文件选择属性并复制路径并将其粘贴到您输入文件名的位置

于 2013-07-28T07:31:42.623 回答
0

可能您在不同的设置中有不同的“工作目录”。您可以通过像这样打印来检查您所在的目录:

System.out.println(new File(".").getAbsoluteFile());

在 Eclipse 中,您可以在运行配置、参数选项卡中设置工作目录。

于 2011-08-17T11:21:04.490 回答
0

假设您想在 netbeans 中添加 test.txt

如果您在 C:\myProject 中的项目将文本文件直接放在 C:\myProject 文件中,而不是放在 C:\myProject\src 中。然后使用:

文件 file = new File("test.txt");

扫描仪输入 = 新扫描仪(文件);

或者

扫描仪输入 = 新扫描仪(新文件(“test.txt”));

于 2016-01-18T18:21:06.700 回答