2013-12-01 2 views
1

Я пишу программу на Java, она сканирует файл, подсчитывает строки, символы, палиндромы, слова. Моя проблема в том, что когда я запрашиваю имя файла, я использую BufferedReader и InputStreamReader для сканирования файла, который предоставил пользователь, и распечатывает результаты в другом файле, моя программа компилируется, когда я печатаю имя файла, ничего не происходит, программа делает не договорил, и застревает, здесь кодируют BufferedReader, если весь код нужен я вывешу егоJava-проблема с открытием и сканированием файла

System.out.println("Enter the name of the file you would like to scan: "); 
         String fileName = scan.nextLine(); 

         File file = new File(fileName); 



      BufferedReader br = new BufferedReader(newInputStreamReader(System.in)); 
+0

You're чтение из System.in ... так you're чтение не из файла, но от входа системы. – cljk

ответ

0

Вы создаете объект InputStreamReader как System.in как свойство InputStream. Вам нужно указать FileInputStream для InputStream.

1

Попробуйте с

BufferedReader br = new BufferedReader(new FileReader(fileName)); 

на самом деле вы определяете читателя InputStreamReader для чтения из системы, как System.in хотя вы пытаетесь прочитать файл. Поэтому вы должны использовать FileReader. См How to read file in Java

также благодаря @ user1009560 вы можете использовать

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file))); 
+1

BufferedReader br = new BufferedReader (новый InputStreamReader (новый FileInputStream (файл))); – user1009569

+0

@ user1009569 см. Обновление. –

+0

Я пробовал это я получаю: незарегистрированное исключение java.io.FileNotFoundException; должен быть пойман или объявлен брошенным BufferedReader br = новый BufferedReader (новый FileReader (имя_файла)); – octain

1
Scanner scanner = new Scanner(System.in); 
    String fileName = scanner.next(); 
    scanner.nextLine(); 

    FileReader file = new FileReader(fileName); 

    BufferedReader br = new BufferedReader(FileReader);