Построчно вывести в файл java

Построчное чтение файла в Java

В данном мануале мы разберем разные способы построчного считывания содержимого файла с помощью Java. Это можно сделать с помощью следующих классов Java: java.io.BufferedReader, java.util.Scanner, Files.readAllLines() и java.io.RandomAccessFile.

Чтение файла с помощью BufferedReader

Читать файл построчно можно с помощью метода readLine() из java.io.BufferedReader. Этот метод возвращает null при достижении конца файла.

Пример считывания с помощью BufferedReader:

import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ReadFileLineByLineUsingBufferedReader < public static void main(String[] args) < BufferedReader reader; try < reader = new BufferedReader(new FileReader("sample.txt")); String line = reader.readLine(); while (line != null) < System.out.println(line); // read next line line = reader.readLine(); >reader.close(); > catch (IOException e) < e.printStackTrace(); >> >

Узнайте больше о BufferedReader в API Doc (Java SE 8).

Чтение файла с помощью Scanner

С помощью класса Scanner можно открыть файл, а затем построчно прочитать его содержимое.

Ниже приведен пример чтения файла с помощью Scanner:

package com.journaldev.readfileslinebyline; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class ReadFileLineByLineUsingScanner < public static void main(String[] args) < try < Scanner scanner = new Scanner(new File("sample.txt")); while (scanner.hasNextLine()) < System.out.println(scanner.nextLine()); >scanner.close(); > catch (FileNotFoundException e) < e.printStackTrace(); >> >

Рекомендуем узнать больше о Scanner в API Doc (Java SE 8).

Чтение файла с помощью java.nio.file.Files

java.nio.file.Files — это класс утилит, в котором есть разные полезные методы. С помощью метода readAllLines() можно прочитать все строки файла в виде списка.

Читайте также:  Add certificate to java keystore

Пример построчного чтения файла с помощью Files:

package com.journaldev.readfileslinebyline; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; public class ReadFileLineByLineUsingFiles < public static void main(String[] args) < try < List allLines = Files.readAllLines(Paths.get("sample.txt")); for (String line : allLines) < System.out.println(line); >> catch (IOException e) < e.printStackTrace(); >> >

Рекомендуем подробнее ознакомиться с Files в API Doc (Java SE 8).

Чтение файла с помощью RandomAccessFile

С помощью RandomAccessFile можно открыть файл в read mode, а затем с помощью метода readLine прочитать файл построчно.

Пример работы RandomAccessFile:

package com.journaldev.readfileslinebyline; import java.io.IOException; import java.io.RandomAccessFile; public class ReadFileLineByLineUsingRandomAccessFile < public static void main(String[] args) < try < RandomAccessFile file = new RandomAccessFile("sample.txt", "r"); String str; while ((str = file.readLine()) != null) < System.out.println(str); >file.close(); > catch (IOException e) < e.printStackTrace(); >> >

Узнайте больше о RandomAccessFile в API Doc (Java SE 8).

Заключение

В этом мануале мы разобрали разные способы построчного чтения содержимого файла с помощью Java.

Источник

Как осуществить запись в файл в Java

При написании программ на языке Java рано или поздно встанет необходимость чтения и записи информации в файл. Для этого в языке предусмотрены следующие инструменты для ввода и вывода данных: класс Writer для записи и Reader для чтения. Наследниками этих классов являются классы FileWriter и FileReader, удобные для работы непосредственно с файлами.

Простой пример записи в файл в Java

Перед тем как создавать точку входа в программу, нужно прописать импорты (необходимые классы находятся в библиотеке java.io*, пропишем звездочку, т. к. в дальнейшем понадобятся еще классы из этой библиотеки). Импорт в редакторе должен иметь такой вид:

Затем внутри произвольного класса пишем метод main, в котором в свою очередь создаем экземпляр класса FileWriter и записываем его в переменную write:

FileWriter writer = new FileWriter(«text.txt»);

При запуске этой программы будет создан файл text.txt в корне проекта. Для того чтобы записать что-нибудь в этот файл, нужно обратиться к методу write() класса Writer, метод write() принимает в качестве аргумента строку, напишем туда что-нибудь:

writer.write(«пример записи в файл в Java»);

При работе с вводом выводом данных необходимо также учитывать исключительные ситуации по причине того, что мы не всегда знаем, что будет в этих данных. Компилятор не пропустит данный код без специальной конструкции throws Exception, которую нужно вставить в сигнатуре метода main. Также нужно позаботиться о выходе из потока, после метода write() нужно закрыть поток при помощи метода close(). Как должен выглядеть код на этом этапе, показано на рисунке ниже.

Как осуществить запись в файл в Java

При запуске программы в корне проекта появится файл text.txt, в котором будет написано «пример записи в файл в Java». Однако данный пример годится только для ознакомительных целей, чтобы применить его в «боевых» условиях нужно провести небольшой рефакторинг.

Рефакторинг

Первое, что нужно сделать, — заключить код, отвечающий за ввод вывод данных в конструкцию try — catch (так легче управлять исключениями и применять свои исключения). Затем нужно создать отдельную переменную с типом File, куда можно записать адрес и название файла (это удобно, т. к. часто нужно работать с несколькими файлами, их помещают в отдельные переменные и обрабатывают циклом, и только затем результирующая переменная вставляется как параметр в FileWriter).

Также хорошей практикой при работе с потоками ввода/вывода считается использование буфера (класс FileWriter обращается к диску, если данных много это может потребовать много памяти, поэтому разумно манипулировать данными, используя буфер), для этого применяется класс BufferedWriter, а FileWriter записывается в скобки в качестве параметра. Для освобождения буфера вызывается метод flush(), его можно прописать перед методом close(), теперь код будет выглядеть так, как показано ниже.

Как осуществить запись в файл в Java

Как записать Java в файл построчно

Каждый раз при компиляции данного кода в консоли будет перезаписываться одна и та же запись. Как сделать так, чтобы при запуске программы в файл записывалась новая информация построчно? Для этого в первую очередь нужно написать ключевое слово true вторым параметром при создании FileWriter:

BufferedWriter writer = new BufferedWriter(new FileWriter(myFile, true));

Каждый раз при компиляции программа будет записывать в файл строку, которая находится в методе write(), без переноса на следующую строку. В нашем случае получилось так:

пример записи в Java пример записи в Java пример записи в Java

Простой способ переноса строки — это добавление оператора /n к строковому аргументу метода write(), однако такой способ не будет работать в разных операционных системах. Для того чтобы записать файл построчно на различных платформах, нужно использовать метод line.separator класса System. В следующем примере видно, как этот метод записать в переменную lineSeparator, которую потом можно использовать в строковом аргументе метода write():

String lineSeparator = System.getProperty(«line.separator»);

Окончательно код будет выглядеть так, как показано ниже.

Как осуществить запись в файл в Java

Результат выполнения данного кода будет следующим: в файле text.txt при троекратном запуске программы появятся строки «пример записи в Java».

Источник

Оцените статью