Не вижу разницы между объектами

239
22 августа 2017, 11:49

Создал два объекта fileOne и fileTwo. Оба читают из файла, оба имеют одинаковые методы. В чем между ними разница и какой предпочтительнее использовать для чтения из файла? Благодарю.

BufferedReader fileOne = new BufferedReader(
                new InputStreamReader(
                        new FileInputStream(reader.readLine())));
System.out.println(fileOne.readLine());
fileOne.close();

BufferedReader fileTwo = new BufferedReader(new 
                FileReader(reader.readLine()));
System.out.println(fileTwo.readLine());
fileTwo.close();
Answer 1

Если вы откроете исходный код класса FileReader и посмотрите его, достаточно даже строки объявления класса и первого конструктора, то поймете, что это просто обертка для первой вашей конструкции. FileReader - наследник InputStreamReader, а в конструкторе он создает тот же FileInputStream. Собственно, вот исходный код FileReader:

public class FileReader extends InputStreamReader {
    public FileReader(String fileName) throws FileNotFoundException {
        super(new FileInputStream(fileName));
    }
    public FileReader(File file) throws FileNotFoundException {
        super(new FileInputStream(file));
    }
    public FileReader(FileDescriptor fd) {
        super(new FileInputStream(fd));
    }
}

Рекомендую почаще заглядывать в исходный код используемых классов, так можно много полезного узнать.

Answer 2

Не совсем ответ на вопрос, но позвольте предложить Вам "более современный" подход чтения файлов из пакета NIO 2:

Path path = Paths.get("file.txt");
List<String> lines = Files.readAllLines(path);

Использую его всегда. (8-я джава)

READ ALSO
NPE ответа сервера

NPE ответа сервера

Было и раньше подобное предупреждение, но как то не особо придавал значение, так как проверка с toast’ом проходила и кол-во лайков показывает...

212
Из-за чего сбилась кодировка при сборке JAR?

Из-за чего сбилась кодировка при сборке JAR?

Здравствуйте! Есть приложение написанное на JavaПарсит сайт и при необходимости отправляет email

239
(android studio, java) Подключение/чтение/отправка данных на сторонние устройства через usb COM порт

(android studio, java) Подключение/чтение/отправка данных на сторонние устройства через usb COM порт

сабж: как подключить к андроид устройству сторонние девайсы по COM порту и впоследствии отправлять/читать данные с нихЖелательно предоставить...

346
Создание section&#39;a без перезагрузки

Создание section'a без перезагрузки

У меня есть <section>, в нем есть список услугНужно чтоб при выборе услуги в этом же <section> появлялась вся информация по этой услуге, и чтоб...

286