Запись файлов. Класс FileWriter


Класс FileWriter является производным от класса Writer. Он используется для записи текстовых файлов.

Чтобы создать объект FileWriter, можно использовать один из следующих конструкторов:

FileWriter(File file)

FileWriter(File file, boolean append)

FileWriter(FileDescriptor fd)

FileWriter(String fileName)

FileWriter(String fileName, boolean append)

Так, в конструктор передается либо путь к файлу в виде строки, либо объект File, который ссылается на конкретный текстовый файл. Параметр append указывает, должны ли данные дозаписываться в конец файла (если параметр равен true), либо файл должен перезаписываться.

Запишем в файл какой-нибудь текст:

import java.io.*;

 

public class FilesApp {

 

public static void main(String[] args) {

 

try(FileWriter writer = new FileWriter("C:\\SomeDir\\notes3.txt", false))

{

// запись всей строки

String text = "Мама мыла раму, раму мыла мама";

writer.write(text);

// запись по символам

writer.append('\n');

writer.append('E');

 

writer.flush();

}

catch(IOException ex){

 

System.out.println(ex.getMessage());

}

}

}

В конструкторе использовался параметр append со значением false - то есть файл будет перезаписываться. Затем с помощью методов, определенных в базовом классе Writer производится запись данных.

Чтение файлов. Класс FileReader

Класс FileReader наследуется от абстрактного класса Reader и предоставляет функциональность для чтения текстовых файлов.

Для создания объекта FileReader мы можем использовать один из его конструкторов:

FileReader(String fileName)

FileReader(File file)

FileReader(FileDescriptor fd)

А используя методы, определенные в базом классе Reader, произвести чтение файла:

import java.io.*;

 

public class FilesApp {

 

public static void main(String[] args) {

 

try(FileReader reader = new FileReader("C:\\SomeDir\\notes3.txt"))

{

// читаем посимвольно

int c;

while((c=reader.read())!=-1){

 

System.out.print((char)c);

}

}

catch(IOException ex){

 

System.out.println(ex.getMessage());

}

}

}

Также используя перегруженную версию метода read(char[] buffer) из базового класса Reader мы могли бы сразу полностью считать файл в массив:

File f=new File("D:\\contract.txt");

try(FileReader reader = new FileReader(f))

{

char[] buffer = new char[(int)f.length()];

// считаем файл полностью

reader.read(buffer);

System.out.println(new String(buffer));

}

catch(IOException ex){

 

System.out.println(ex.getMessage());

}



Дата добавления: 2017-01-26; просмотров: 1325;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.