Java — проблема с открытием и сканированием файла

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

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));

person octain    schedule 01.12.2013    source источник
comment
Вы читаете из System.in... так что вы читаете не из файла, а из системного ввода.   -  person cljk    schedule 02.12.2013


Ответы (2)


Попробуйте с

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

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

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

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
person Anirban Nag 'tintinmj'    schedule 01.12.2013
comment
BufferedReader br = новый BufferedReader (новый InputStreamReader (новый FileInputStream (файл))); - person user1009569; 02.12.2013
comment
Я пробовал это, я получаю: незарегистрированное исключение java.io.FileNotFoundException; должен быть перехвачен или объявлен для выдачи BufferedReader br = new BufferedReader(new FileReader(fileName)); - person octain; 02.12.2013
comment
FileNotFoundException - это проверенное исключение. - person Anirban Nag 'tintinmj'; 02.12.2013
comment
Я справился с этим, но когда я компилирую, он говорит, что не может найти символы для имени файла. что должно быть в блоке try? у меня есть это: try {System.out.println (введите имя файла, который вы хотите отсканировать:); Строка fileName = scan.nextLine(); Файл файл = новый файл (имя файла); BufferedReader br = новый BufferedReader (новый FileReader (имя файла)); } - person octain; 02.12.2013
comment
Задайте другой вопрос. Нет смысла отвечать на ваш вопрос в комментариях. Это не форум. - person Anirban Nag 'tintinmj'; 02.12.2013

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

person user1009569    schedule 01.12.2013