BufferedReader fileReader = new BufferedReader(new InputStreamReader(new FileInputStream("C:\file.txt"))); //1
FileInputStream inputFile = new FileInputStream("C:\file.txt"); //2
Стас
18 уровень
Объясните в чем разница, делают, вроде, одно и тоже, но обозначаются по - разному. Хотелось бы подробнее узнать про строчку с BufferedReader
Архивный
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #1911629
25 октября 2018, 11:20
InputStream читает по байтам, а Reader читает по символам.
Т.е. в первой строке ты создаешь буфер, в который помещают те символы, что ридер прочитал из потока, который читает файл по байтам.
А во второй ты создаешь поток, который будет читать по байтам данные из файла.
В общем-то если тебе нужно читать по одному символу и нет нужды в работе по оптимизации процесса, то можно использовать любой, но у Reader есть возможность читать строку, а у потока только по одному символу. Т.е. Reader является эдакой "оберткой" для потока с доп функциями. А BufferedReader является "оберткой" для Reader, которая помещает прочитанные данные в буфер, а не при каждом запросе читает их заново, что увеличивает скорость работы программы.
+2