Netbeans FileReader FileNotFound Исключение, когда файл находится в папке? - PullRequest
2 голосов
/ 17 августа 2011

, поэтому проблема в том, что у меня выдается исключение каждый раз, когда я пытаюсь загрузить приведенный ниже код в 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 }

Ответы [ 7 ]

2 голосов
/ 27 сентября 2011

Ниже приведена пошаговая процедура в среде IDE NetBeans 7.0.1

  1. . Щелкните меню «Файл».
  2. Выберите Свойства проекта.
  3. В категориях:выберите Run.
  4. В основном классе вы выбираете текущий файл Java.
  5. В аргументах выберите файл, который вы хотите прочитать, например, abc.txt или abc.java
  6. Ив рабочем каталоге запишите путь к папке, в которой находится этот abc.txt или abc.java.
  7. Нажмите OK, чтобы закрыть свойства проекта.
  8. Во время работы вашей программы не забудьте выбратьВаш проект как Основной проект.
  9. Затем нажмите F ^ на клавиатуре.т.е. вы должны запустить ваш основной проект вместо того, чтобы просто запустить текущий файл Java.Вот и все .... наслаждайтесь !!!!
2 голосов
/ 17 августа 2011

В netbeans рабочим каталогом по умолчанию всегда является корневая папка, я имею в виду папку, в которой находятся папки с именами «src», «build» и т. Д. Поместите файл вместе с этими папками, и он сделает свое дело.

1 голос
/ 19 сентября 2011

Наконец нашел решение

В eclipse вы должны поместить целевой файл в папку проекта. Думаю, то же самое относится и к NetBeans.

У меня был целевой файл в папке "src" (там, где были настоящие файлы кода). На самом деле мне пришлось просто изменить его на верхнюю папку, где находится папка проекта.

Легко и просто.

0 голосов
/ 18 января 2016

Допустим, вы хотите добавить test.txt в netbeans

, если ваш проект в C: \ myProject поместил текстовый файл непосредственно в файл C: \ myProject , а не в C: \myProject \ src.затем используйте:

Файл файл = новый файл ("test.txt");

Вход сканера = новый сканер (файл);

ИЛИ

Вход для сканера = новый сканер (новый файл ("test.txt"));

0 голосов
/ 28 июля 2013

щелкните правой кнопкой мыши по текстовому файлу, выберите свойства, скопируйте путь и вставьте его в место, где вы ввели имя файла

0 голосов
/ 17 августа 2011

Попробуйте BufferedReader?

РЕДАКТИРОВАТЬ: отредактировано, чтобы показать пример более близко к вашему коду.Я получил исключение при использовании File Reader.Но смог .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);     
        }
0 голосов
/ 17 августа 2011

Возможно, у вас разные "рабочие каталоги" в разных настройках.Вы можете проверить, в каком каталоге вы находитесь, распечатав его так:

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

В eclipse вы можете настроить рабочий каталог в конфигурациях запуска, вкладка аргументов.

...