Как записать данные в файл java
Перейти к содержимому

Как записать данные в файл java

  • автор:

Как записать в файл java

Для записи строки в текстовый файл, который находится в корневом каталоге проекта:

String line = "Hello, Hexlet!"; // Строка для записи Path pathToFile = Paths.get("example.txt"); // Получаем путь до файла // Записываем строку в файл // Указываем путь, строку, стандарт кодирования символов и // опции записи в файл Files.writeString(pathToFile, line, StandardCharsets.UTF_8, StandardOpenOption.CREATE, StandardOpenOption.APPEND); // Cодержимое файла: Hello, Hexlet! 

Опции записи настроены так, что создается новый файл при его отсутствии, а информация записывается в конец файла.

String text = "Hello, Hexlet!"; // Строка для записи // Создаем объект класса для записи в файл, передаем название файла, // указываем, что данные будут дозаписываться в конец // Используем конструкцию try-with-resources для автоматического закрытия потока try (FileWriter fileWriter = new FileWriter("example.txt", true))  fileWriter.append(text).append(" "); // Записываем строку в файл, добавляя пробелы fileWriter.append(text).append(" "); fileWriter.flush(); // Очищаем буфер потока > // Cодержимое файла: Hello, Hexlet! Hello, Hexlet! 

Запись в файл на Java

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

Существует несколько методов и классов, которые мы можем использовать для записи в файл на Java. Вот некоторые из них:

1. Использование Files class

В Java 7 мы можем использовать Класс файлов из пакета NIO, который предоставляет различные служебные методы для выполнения операций над файлами и каталогами. Он предоставляет такие методы, как readAllLines() , readAllBytes() , newBufferedWriter() , а также write() который может быть использован для прочитать содержимое файла и эффективно записывать текст в файл.

Создание и запись в файл в Java

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

Создание файла

В Java для создания файла используется класс File . Этот класс представляет собой абстракцию файлов и каталогов. Вот простой пример создания файла:

import java.io.File; import java.io.IOException; public class Main < public static void main(String[] args) < try < File file = new File("example.txt"); if (file.createNewFile()) < System.out.println("Файл создан"); >else < System.out.println("Файл уже существует"); >> catch (IOException e) < System.out.println("Ошибка при создании файла"); e.printStackTrace(); >> >

В этом примере создается новый объект File с именем «example.txt». Метод createNewFile() возвращает true , если файл был успешно создан, и false , если файл уже существует.

Запись в файл

После того, как файл был создан, можно начать запись в него. Для этого в Java используется класс FileWriter . Этот класс предоставляет методы для записи символьных данных в файл. Вот пример записи в файл:

import java.io.FileWriter; import java.io.IOException; public class Main < public static void main(String[] args) < try < FileWriter writer = new FileWriter("example.txt"); writer.write("Привет, мир!"); writer.close(); >catch (IOException e) < System.out.println("Ошибка при записи в файл"); e.printStackTrace(); >> >

В этом примере создается новый объект FileWriter , который связан с файлом «example.txt». Метод write() используется для записи строки «Привет, мир!» в файл. После записи в файл, его необходимо закрыть с помощью метода close() .

Таким образом, с помощью классов File и FileWriter , можно легко создать файл и записать в него данные.

Работа с файлами в Java. FileWriter и FileReader

*Это Говард Стивен Берг (Howard Stephen Berg), один из самых быстро читающих людей в мире �� А FileWriter — Уильям Шекспир.

  • написана командой Vertex Academy. Надеемся, что она Вам будет полезна. Приятного прочтения!
  • это одна из статей из нашего «Самоучителя по Java»

Рассмотрим работу с FileWriter и FileReader:

  • с помощью FileWriter мы можем создавать файлы
  • с помощью FileReader — считывать их
Внимание:

Потоки FileWriter и FileReader немного отличаются от того, с чем мы встречались ранее. Работая с ними, понадобится всегда помнить 3 важных момента:

1. Объявление

Перед тем, как вызывать какие-нибудь методы для работы с файлами, нужно объявить FileWriter/FileReader:

snimok-ekrana-2016-11-17-v-17-07-25

snimok-ekrana-2016-11-17-v-17-10-14

Но Eclipse может не распознать FileReader/FileWriter и начнет ругаться. Если такое произойдет, посмотрите, импортировали ли вы библиотеку java.io.*. Для этого в самой первой строчке напишите:

import java . io . * ;

2. Нужно закрыть поток

FileWriter/FileReader — это потоки, их нужно не только «открыть» (то-есть объявить), но и «закрыть» . Представьте, что Вы открыли кран. Нельзя же уйти из дому, оставив воду литься?

stocksnap_03f8a942c5

Это правило работает и для других потоков — кроме стандартных System.in и System.out.

Закрыть поток можно с помощью .close() :

snimok-ekrana-2016-11-17-v-17-22-30

snimok-ekrana-2016-11-17-v-17-24-05

import java . io . * ;
class Test < public static void main ( String [ ] args ) throws Exception < FileWriter fw = new FileWriter ( "sample1.txt" ) ; FileReader fr = new FileReader ( "sample2.txt" ) ;

3. Допишите «волшебную фразу».

В программировании очень важна безопасность . А работа с FileWriter/FileReader — это небезопасно , в процессе может возникнуть масса разных ошибок. Это беспокоит Eclipse (или IntellijIdea — смотря чем пользуетесь), и программу она просто так не запустит. Помните, что к методу нужно дописать «throws Exception» :

snimok-ekrana-2016-11-17-v-18-01-04

Итак, еще раз акцентируем внимание — всегда Вы должны помнить о 3 моментах:

И еще, потоки FileWriter и FileReader воспринимают все файлы как текстовые:

snimok-ekrana-2016-11-16-v-21-44-24

FileWriter

Теперь представим, что Вы начинаете использовать FileWriter.

1. Объявление.

Как Вы помните, нужно не забыть импортировать библиотеки java.io.* и дописать «волшебную фразу» к методу, где Вы собираетесь объявить FileWriter.

Объявляем, как помните, почти как Scanner:

snimok-ekrana-2016-11-17-v-17-07-25

Объявили. А что теперь можно делать? Теперь пора пользоваться возможностями FileWriter!

Основной метод FileWriter — это метод .write() .

snimok-ekrana-2016-11-17-v-18-48-33

Мало? Да, но посмотрите, как много с ним можно сделать:

import java . io . * ;
public class Test < public static void main ( String [ ] args ) throws Exception < newFile ( k1 , k2 ) ; public static void newFile ( int k1 , int k2 ) throws Exception < FileWriter nFile = new FileWriter ( "file1.txt" ) ; for ( int i = k1 ; i < = k2 ; i ++ ) < nFile . write ( i ) ; nFile . close ( ) ;

*обратите внимание — мы написали нашу «волшебную фразу» и в методе main, и в методе newFile.

Так мы можем записать числа от k1 до k2, от 2 до 9, в наш файл file1.txt. Можно записывать только четные или нечетные числа, какой-нибудь текст, и многое другое.

2. Переход на следующую строку

Но мы Вам кое-чего не сказали. Если запустить код из прошлого пункта, получится:

Если понадобится вывести числа в столбик, понадобится добавить » \n » от «new line», новая строка. Запишем в файл стих:

import java . io . FileWriter ;
public class Test < public static void main ( String [ ] args ) throws Exception < FileWriter nFile = new FileWriter ( "file1.txt" ) ;

nFile . write ( «Хокку \nПодобен лучу самурайский клинок \nИ тот затупился \nПроклятая килька в томате!!» ) ;

nFile . close ( ) ;

snimok-ekrana-2016-11-22-v-18-01-26

Каждый раз, когда мы хотели, чтобы программа переходила на новую строку, мы ставили » \n «:

snimok-ekrana-2016-11-22-v-18-08-25

Теперь вы знаете, как вывести числа с новой строки:

import java . io . * ;
public class Test < public static void main ( String [ ] args ) throws Exception < newFile ( k1 , k2 ) ; public static void newFile ( int k1 , int k2 ) throws Exception < FileWriter nFile = new FileWriter ( "file1.txt" ) ; for ( int i = k1 ; i < = k2 ; i ++ ) < nFile . write ( i + "\n" ) ; nFile . close ( ) ;

3. Закрываем поток

После того, как Вы записали все необходимое, нужно не забыть закрыть поток. Это мы делали в каждом из приведенных примеров:

snimok-ekrana-2016-11-22-v-18-13-47

snimok-ekrana-2016-11-22-v-18-14-00

FileReader

Теперь, рассмотрим пошагово работу с FileReader.

1. Объявление

Сначала FileReader, как и FileWriter, нужно объявить . Не забудьте про библиотеку и » волшебную фразу «:

import java . io . FileReader ;
import java . util . Scanner ;
public class Test < public static void main ( String [ ] args ) throws Exception < FileReader fr = new FileReader ( "file1.txt" ) ; Scanner scan = new Scanner ( fr ) ;

2. FileReader + Scanner

Мы объявили не только FileReader, но и Scanner. Почему?

В отличии от FileWriter, FileReader не используется один:

2_shake2_reader

Не вдаваясь в подробности, запомните, что FileReader и Scanner идут вместе. Но не забывайте их «связать» — для этого напишите название вашего объекта FileReader вместо «System.in» при объявлении Scanner:

snimok-ekrana-2016-11-22-v-18-41-27snimok-ekrana-2016-11-22-v-18-44-43

3. Методы

Тут уже больше методов. Рассмотрим методы .nextLine() и .hasNextLine().

  • .nextLine() — это метод, который считывает строку (до ENTER), и возвращает это значение
  • .hasNextLine() — метод, который возвращает boolean — true или false, показывая, есть ли следующая строка.

import java . io . FileReader ;
import java . util . Scanner ;
public class Test < public static void main ( String [ ] args ) throws Exception < FileReader fr = new FileReader ( "file1.txt" ) ; Scanner scan = new Scanner ( fr ) ; while ( scan . hasNextLine ( ) ) < System . out . println ( i + " : " + scan . nextLine ( ) ) ;

Должен быть такой результат:

snimok-ekrana-2016-11-22-v-19-08-13

Обратите внимание: мы используем .hasNextLine() для того, чтобы избежать ошибки, и не заставлять .nextLine() считывать строку, которой не существует:

snimok-ekrana-2016-11-22-v-19-11-15

snimok-ekrana-2016-11-22-v-19-11-15

4. Закрываем поток.

snimok-ekrana-2016-11-22-v-19-16-10

Готово. Теперь Вы знаете, как работать с FileWriter и FileReader.

Надеемся, что наша статья была Вам полезна. Также есть возможность записаться на наши курсы по Java в Киеве. Обучаем с нуля. Детальную информацию Вы можете найти у нас на сайте.

  • ← Преобразование типов в Java
  • Классы оболочки в Java →

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *