Кажется, существуют разные способы чтения и записи данных файлов в Java.
Я хочу прочитать данные ASCII из файла. Каковы возможные способы и их различия?
Переведено автоматически
Ответ 1
Мой любимый способ чтения небольшого файла - использовать BufferedReader и StringBuilder. Это очень просто и по существу (хотя и не особенно эффективно, но достаточно хорошо для большинства случаев).:
while (line != null) { sb.append(line); sb.append(System.lineSeparator()); line = br.readLine(); } Stringeverything= sb.toString(); }
Когда я читаю строки, подобные этой, я обычно хочу в любом случае выполнить некоторую обработку строк для каждой строки, поэтому я выбираю эту реализацию.
Хотя, если я хочу на самом деле просто прочитать файл в виде строки, я всегда использую Apache Commons IO с классом IOUtils .Метод toString() . Вы можете ознакомиться с исходным кодом здесь:
try(FileInputStreaminputStream=newFileInputStream("foo.txt")) { Stringeverything= IOUtils.toString(inputStream); // do something with everything string }
Ответ 2
ASCII - это текстовый файл, поэтому вы должны использовать Readers для чтения. Java также поддерживает чтение из двоичного файла с помощью InputStreams. Если считываемые файлы огромны, то вы хотели бы использовать a BufferedReader поверх a FileReader для повышения производительности чтения.
Прочитайте эту статью о том, как использовать Reader
Я бы также порекомендовал вам скачать и прочитать эту замечательную (пока бесплатную) книгу под названием Мышление на Java