2016-10-31 2 views
-3

Я скопировал код ниже с Линдой Java Essential Training 2016 Эпизод 70:FileNotFoundException при копировании текстового файла

String sourceFile="files/copytest.txt"; 
    String targetFile="files/copied.txt"; 

    try(FileReader fReader=new FileReader(sourceFile); 
     BufferedReader bReader=new BufferedReader(fReader); 
     FileWriter writer=new FileWriter(targetFile)) { 

     while(true){ 

      String line=bReader.readLine(); 
      if(line==null){ 
       break; 
      } 
      else{ 
       writer.write("jarek"+"\n"); 
      } 
     } 
     System.out.println("File copied succesfull!"); 

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

Когда я запускаю код, указанный выше, он выдает следующее сообщение об ошибке:

java.io.FileNotFoundException: files\copytest.txt (The system can not find the path specified) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileReader.<init>(Unknown Source) 
    at de.exercise.copyfile.Copyfile.main(Copyfile.java:108) 

Я скопировал новый код для чтения из файла: текстовый

File file = new File("files/copytest.txt"); 
Scanner in = null; 
try { 
    in = new Scanner(file); 
    String zdanie = in.nextLine(); 
    System.out.println(zdanie); 
} catch (FileNotFoundException e1) { 
    e1.printStackTrace(); 
} 

Но результат тот же:

java.io.FileNotFoundException: files\copytest.txt (The system can not find the path specified) 
at java.io.FileInputStream.open0(Native Method) 
at java.io.FileInputStream.open(Unknown Source) 
at java.io.FileInputStream.<init> (Unknown Source) 
at java.util.Scanner.<init> (Unknown Source) 
at de.exercise.copyfile.Copyfile.main(Copyfile.java:18) 
+3

«Система не может найти указанный путь» довольно понятна: запрошенный файл 'files/copytest.txt' не существует (с точки зрения рабочего каталога). – Seelenvirtuose

+1

Сначала вы должны прочитать ошибку. Это очень просто ... – Li357

+0

Я знаю, что проблема связана с моим файлом. Но я не знаю, как это исправить. У меня есть файл кода в: C: \ Users \ BYKBRONY \ DyskGoogle \ workspace \ Jarek \ src \ de \ exercise \ copyfile и txt файл в: C: \ Users \ BYKBRONY \ Dysk Google \ workspace \ Jarek \ src \ de \ exercise \ copyfile \ files Как chenge: "files/copytest.txt" в рабочий код? –

ответ

0

Прежде всего, избегайте использования исключений с помощью Exception. вы должны ловить только ожидаемые.

Во-вторых, вы сказали это: java.io.FileNotFoundException: files\copytest.txt (The system can not find the path specified). Экземпляр File, определенный по имени, просто получает файл в основной папке проекта, то есть там, где он должен быть.

Если вы используете NetBeans, это, вероятно, в

MyDocuments > NetBeanProjects > Projects

Что бы ни проект, он должен быть внутри него на первом уровне. Что-то вроде этого:

C:\MyDocuments\NetBeanProjects\Project\files\copytest.txt

Кроме того, попробуйте поместить различную обратную косую черту. У вас есть в String/вместо.

Надеюсь, я помог.

Имейте славный день. :)

+0

* Программы * могут получить доступ к файлам в Windows с косой чертой или обратной косой чертой \, которые BTW исчезли из вашего ответа, потому что они используются для форматирования «markdown» в stackexchange с некоторыми исключениями, такими как блоки кода и комментарии. Только в пользовательских интерфейсах - командной строке и диалоговых окнах - обратная косая черта является обязательной. И обратную косую черту сложнее использовать в Java (и C/C++/etc), потому что эти языки относятся к ней специально, и вам нужно удвоить ее. –

+0

Я только указал его, потому что это может быть какая-то ошибка. И спасибо, что предупредили меня о том, что обратная косая черта - StackOverflow, я об этом не знал. :) –

Смежные вопросы