Главная » Java » Чтение текстовых файлов

0

Java использует двухбайтовые  символы  для  хранения  букв,  а  классы FileReader  и  FileWriter  предназначены для  удобной  работы с текстовыми    файлами.  Эти  классы могут  считывать  файлы посимвольно,  используя метод read(),  или же  построчно,  с помощью метода readLine(). У классов FileReader и FileWriter также есть

аналоги,  BufferedReader  и BufferedWriter,  позволяющие ускорить  работу с файлами.Следующий   класс   ScoreReader   считывает   содержимое   файла scores.txt строка  за  строкой.  Выполнение  программы  завершается, когда  метод readLine() возвращает null, что указывает на конец файла.Используя  любой  текстовый  редактор,  создайте  файл  c:\scores.txt,содержащий  следующие  четыре строки:David 235

Brian 190

Anna 225

Zachary 160

Запустите  программу  ScoreReader,  которая  выведет  содержимоеэтого  файла  на  экран.  Добавьте  еще  несколько  строк  с  результатами игр.  Теперь   запустите   программу   снова,   чтобы  убедиться,   что добавленные строки тоже будут выводиться на экран.

import java.io.FileReader; import java.io.BufferedReader; import java.io.IOException;

public class ScoreReader {

public static void main(String[] args) { FileReader myFile = null;

BufferedReader buff = null;

try {

myFile=new FileReader("c:\\scores.txt");

buff = new BufferedReader(myFile);

while (true) {

// считывается строка из файла scores.txt

String line = buff.readLine();

// проверка достижения конца файла

if (line == null) break; System.out.println(line);

} // конец цикла while

}catch (IOException e){

e.printStackTrace();

} finally {

try{

buff.close();

myFile.close();

}catch(IOException e1){

e1.printStackTrace();

}

}

} // конец метода main

}

Если программа должна записывать текстовые данные на диск, используйте  один  из  перегруженных  методов  write()   класса FileWriter.  Эти  методы  позволяют  записать  в  файл  символ,  строку String или целый массив символов.

У  класса  FileWriter есть несколько перегруженных (overloaded) конструкторов.  Если открыть файл, задав только его имя,  то он будет перезаписан заново при каждом запуске программы:

FileWriter fOut = new FileWriter("Scores.txt");

Если  нужно дозаписать данные в уже существующий файл, используйте конструктор с двумя аргументами (true означает режим добавления, если файл  существует):

FileWriter fOut = new FileWriter("Scores.txt", true);

В  следующем примере, класс ScoreWriter записывает три строки измассива scores  в файл c:\scores.txt.

import java.io.FileWriter; import java.io.BufferedWriter; import java.io.IOException;

public class ScoreWriter {

public static void main(String[] args) { FileWriter myFile = null;

BufferedWriter buff = null;

String[] scores = new String[3];

// заполнение массива результатами игры

scores[0] = "Mr. Smith 240"; scores[1] = "Ms. Lee 300"; scores[2] = "Mr. Dolittle 190";

try {

myFile = new FileWriter("c:\\scores2.txt");

buff = new BufferedWriter(myFile);

for (int i=0; i < scores.length; i++) {

// запись строк из массива в файл scores2.txt buff.write(scores[i]);

System.out.println("Записывается " + scores[i] );

}

System.out.println("Запись файла завершена");

}catch (IOException e){

e.printStackTrace();

} finally {

try{

buff.flush(); buff.close(); myFile.close();

}catch(IOException e1){

e1.printStackTrace();

}

}

} // конец метода main

}

Вывод  программы будет выглядеть вот так:

Записывается  Mr. Smith 240

Записывается  Ms. Lee 300

Записывается  Mr. Dolittle 190

Запись файла завершена

Источник: Java  Programming for Kids, Parents and Grandparents by Yakov Fain

По теме:

  • Комментарии