2015-03-05 2 views
2

Я хотел создать объект File/FileReader для создания экземпляра объекта Scanner.Java FileReader vs File

Итак, текст книги был так:

File file = new File("filename.txt"); 

Однако, наш инструктор был похож, что это неправильно, правильный путь:

FileReader file = new FileReader("filename.txt"); 

Оба они работают. Итак, какая разница между ними и какая из них правильная.

+4

Определить _work_. Оба они предназначены для разных целей. –

+1

'Файл' - это файл-файл. 'FileWriter' - это объект, который может записываться в файл. Это две разные вещи. – Jens

+2

AFAIK 'FileWriter' - записать файл, а' Scanner' - прочитать файл. Класс 'File' предназначен для представления файла в системе. –

ответ

5
File(String name) 

Создает новый экземпляр File, преобразовывая данную строку имени пути в абстрактном пути. Если заданная строка является пустой строкой, , то результатом будет пустой абстрактный путь.

FileWriter(String name) 

Создаёт объект FileWriter данное имя файла.

В принципе, разница в том, что только инстанцировании File не позволит писать в него, в то время как FileWriter делает.

Конструктор FileWriter перешел на OutputStreamWriter новый FileOutputStream, который создает экземпляр File от данного имени.

Обратите внимание, что a Scanner используется для чтения File, чтобы не писать в нем.


Edit: Чтобы ответить на отредактированный вопрос, где вы изменили FileWriter к FileReader, основное различие между File и FileReader что File не метод close в то время как FileReader делает и реализовать Closeable. Большинство методов, предлагаемых объектом File, предназначены для непосредственного манипулирования файлом (проверьте наличие, удаление, создание, список всех файлов из каталога). Как упоминалось в @Pshemo, File не рассматривается как данные, а просто как путь.

Рекомендовать читать File API и FileReader API.

+0

Мне так жаль. Я имел в виду FileReader, теперь FileWriter. Что теперь? – Boyyett

+0

@Boyyett Я отредактировал ответ. –

+1

Кроме того, объект «Файл» позволяет вам работать с файлом (проверить наличие, удалить, определить длину и т. Д. Объект «FileReader» используется только для чтения файла. –