1

Я создал графический интерфейс и кнопку.
Мой код выглядит следующим образом:Чтение из файла .txt возвращает «Нет строки Найдено»

private void jButtonSubmitActionPerformed(java.awt.event.ActionEvent evt) { 
try { 
    Scanner scan = new Scanner(new File("persontest.txt")); 
    while(scan.hasNext()) { 
    System.out.println(scan.nextLine()); 
    } 
} catch (FileNotFoundException ex) { 
    System.out.println("File not found" + ex.getMessage()); 
} catch (Exception e) { 
    System.out.println("Some error" + e.getMessage()); 
} 

persontest.txt содержит следующий текст:

  1. Что делать я вношу с при работе в командной работе:
    а. Я придумываю новые идеи
    b. Я слежу за вещами, потому что я в основном основа
    c. Я оцениваю, что является реалистичным и работоспособным.
    d. Я защищаю альтернативные подходы объективно и беспристрастно

При попытке запуска я получаю «Некоторые ошибки Нет строки не найдены»
Я попытался удалить все специальные символы из текста, и я мог читать, поэтому я попытался добавить " UTF-8 "на мой сканер таким образом.

Scanner scan = new Scanner(new File("persontest.txt"), "UTF-8"); 

Однако это ничего не делает. Я все еще получаю «Нет строки».
Если этот вопрос был задан, прежде чем извинить меня, я сделал тщательный поиск, но я либо не мог понять вопрос, заданный, либо ответ в контексте моей проблемы.
Я поменял свой сканер на bufferedreader для устранения неполадок и пример Harshas, ​​и теперь он будет читать текст даже со специальными символами, однако он не отобразит их правильно. Я просто получаю квадратные коробки. Это небольшая проблема.

+2

Возможное дублирование http://stackoverflow.com/questions/7688710/scanner-no-line-found-exception - Попробуйте его ответить –

+0

Какая у вас структура каталогов? Как вы запускаете приложение (из eclipse, командной строки)? – KrzyH

+0

Я не уверен, как это ответ на мой вопрос. Я могу читать текст отлично без «.», «'» И «-» и любого другого .txt-файла, который я пробовал с этим кодом. Но этот .txt дает мне эту ошибку. Я запускаю файл через NetBeans.Это, скорее всего, не моя структура directoty, которая сломана, так как я могу использовать любой другой текст в документе, и он работает. – user2878902

ответ

1

Прежде всего, убедитесь, что persontest.txt находится в вашей основной папке проекта, а не подпапке этого, так как он не найдет его иначе.

Я рекомендую использовать BufferedReader для его чтения по строкам. Вот как:

BufferedReader input = new BufferedReader(new FileReader("persontest.txt")); 
String line; 
while ((line = input.readLine()) != null && !line.isEmpty()) { 
    System.out.println(line); 
} 

Это хорошая практика, чтобы проверить, что строка не пуста вместе с проверкой не равна нулю. Например, если строка была равна \ t, она была бы классифицирована как пустая, но не как null.

-1

Вы можете просто сделать это с помощью

try { 

     String line; 

     BufferedReader br = new BufferedReader(new FileReader("persontest.txt")); 

     while ((line = br.readLine()) != null) { 
      System.out.println(line); 
     } 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

, если вам нужно сделать это с помощью сканера вы можете попробовать использовать

Scanner reader = new Scanner(new FileInputStream("persontest.txt"); 
1

Если persontest.txt находится в пути к классам (т.е. внутри кувшина или источника папку) вы можете использовать:

YourClass.class.getClassloader().getResourceAsStream("persontest.txt")