2013-11-20 4 views
1

Я пытаюсь прочитать файл .java со сканером, но это явно не работает.Пытается прочитать файл .java со сканером класса

File file = new File("program.java"); 
Scanner scanner = new Scanner(file); 

Я просто пытаюсь вывести код программы.java. Любые идеи? Предположим, что все файлы содержатся в одной папке. Поэтому нет необходимости в пути.

+1

Что происходит? Вы получаете сообщение об ошибке? Является ли файл в нужном месте? –

+0

Он выводит имя файла. Но я хочу получить код программы.java – Mark

+0

Почему у вас двойные круглые скобки вокруг «program.java»? Вам нужен только один набор, не думайте, что это исправит вашу проблему. – turbo

ответ

2
try { 
     File file = new File("program.java"); 
     Scanner scanner = new Scanner(file); 
     while(scanner.hasNextLine()) 
     System.out.println(scanner.nextLine()); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 

Вы получили это право до создания объекта сканера. Теперь все, что вам нужно сделать, это проверить сканер, если у него больше строк. Если да, то получите следующую строку и распечатайте ее.

0

Для чтения содержимого из файла в java вам необходимо использовать FileInputStream.
См. Ниже код:

File file = new File(("program.java")); 
FileInputStream fis = null; 

try { 
     fis = new FileInputStream(file); 
     int content; 
     while ((content = fis.read()) != -1) { 
     System.out.print((char) content); 
     } 
     } catch (IOException e) { 
     e.printStackTrace(); 
     } finally { 
     try { 
      if (fis != null) 
       fis.close(); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 

Пожалуйста, проверьте.

+0

Downvoter вы можете дать комментарий, чтобы я мог улучшить свой ответ. –

0

Вы можете использовать BufferedReader объект для чтения в текстовом файле:

try { 

    BufferedReader file = new BufferedReader(new FileReader("program.java")); 
    String line; 
    String input = ""; // will be equal to the text content of the file 

    while ((line = file.readLine()) != null) 
     input += line + '\n'; 

    System.out.print(input); // print out the content of the file to the console 

} catch (Exception e) {System.out.print("Problem reading the file.");} 



Дополнительные пункты:

Вы должны использовать try-catch при чтении файла.

Вы могли бы заменить Exception (он будет ловить любую ошибку, допущенную в коде во время выполнения) либо:
IOException (только поймать исключение ввода-вывода) или
FileNotFoundException (поймает ошибку, если файл не найден).

Или вы могли бы объединить их, например:

} 
catch(FileNotFoundException e) 
{ 
    System.out.print("File not found."); 
} 
catch(IOException f) 
{ 
    System.out.print("Different input-output exception."); 
} 
catch(Exception g) 
{ 
    System.out.print("A totally different problem!"); 
} 
Смежные вопросы