Запись файлов. Класс 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; просмотров: 1425;