Как прочитать файл в строку

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Сохранение данных в файл полезно для постоянного хранения. В Java есть четыре класса, которые можно использовать для чтения файлов: FileReader, Scanner, FileInputStream и BufferedReader. Эти классы являются частью пакета java.io и используются для обработки файлов в Java.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/create_write_files("Create/Write Files") java/FileandIOManagementGroup -.-> java/read_files("Read Files") java/FileandIOManagementGroup -.-> java/io("IO") subgraph Lab Skills java/user_input -.-> lab-117443{{"Как прочитать файл в строку"}} java/files -.-> lab-117443{{"Как прочитать файл в строку"}} java/create_write_files -.-> lab-117443{{"Как прочитать файл в строку"}} java/read_files -.-> lab-117443{{"Как прочитать файл в строку"}} java/io -.-> lab-117443{{"Как прочитать файл в строку"}} end

Создайте пример файла

Начните с создания примера файла .txt для чтения. Вы можете использовать любой текстовый редактор для создания этого файла, и он может содержать любые данные, которые вы хотите прочитать. Пример:

This is the sample data stored in a file
Rahul:10025
Sohan:10026
Madan:10027
Jack:10028

Импортируйте необходимые классы

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

import java.io.*;

Чтение файла с использованием FileReader

Используйте класс FileReader для чтения данных из файла. Объект класса FileReader указывает на начало файла. Используйте буфер размером 1 для чтения каждого символа файла и добавьте его в переменную String.

try {
     // Шаг 1: Создайте новый объект FileReader
     FileReader fr = new FileReader("path/to/your/file.txt");

     // Шаг 2: Создайте переменную String для хранения содержимого файла
     String fileData = "";

     // Шаг 3: Создайте целочисленную переменную для хранения каждого считанного символа
     int c;

     // Шаг 4: Продолжайте читать файл, пока не достигнете конца файла
     while ((c = fr.read())!= -1) {

         // Шаг 5: Добавьте каждый считанный символ в строку fileData
         fileData += (char) c;
     }

     // Шаг 6: Выведите содержимое файла
     System.out.println(fileData);

     // Шаг 7: Закройте читатель файла
     fr.close();

 } catch (IOException e) {
     e.printStackTrace();
 }

Чтение файла с использованием Scanner

Используйте класс Scanner для чтения данных из текстового файла. Вам нужно предоставить текстовый файл в качестве источника ввода для сканера, а затем ограничить сканер методом \\Z, чтобы прочитать все данные сразу и преобразовать их в строку.

try {
     File file = new File("path/to/file.txt");
     Scanner scanner = new Scanner(file);

     scanner.useDelimiter("\\Z");

     String fileData = scanner.next();
     System.out.println(fileData);

     scanner.close();
 } catch (FileNotFoundException e) {
     e.printStackTrace();
 }

Чтение файла с использованием FileInputStream

Используйте класс FileInputStream для чтения данных непосредственно из файла в массив байтов. Создайте буфер нужного размера (10 байт в нашем примере) для временного хранения данных, прочитанных из файла, а затем добавьте их в объект StringBuilder. Наконец, мы используем метод toString(), чтобы преобразовать содержимое объекта StringBuilder в String.

try {
     File file = new File("path/to/file.txt");
     FileInputStream fileInputStream = new FileInputStream(file);
     byte[] buffer = new byte[10];
     StringBuilder stringBuilder = new StringBuilder();

     int length;
     while ((length = fileInputStream.read(buffer))!= -1) {
         stringBuilder.append(new String(buffer, 0, length));
     }

     String fileData = stringBuilder.toString();
     System.out.println(fileData);

     fileInputStream.close();

 } catch (IOException e) {
     e.printStackTrace();
 }

Чтение файла с использованием BufferedReader

Используйте класс BufferedReader для чтения данных из файла простым способом. Он прочитает все данные сразу, а затем вы можете вывести их построчно с использованием метода readLine().

try {
     File file = new File("path/to/file.txt");
     BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
     String line;

     while ((line = bufferedReader.readLine())!= null) {
         System.out.println(line);
     }

     bufferedReader.close();

 } catch (IOException e) {
     e.printStackTrace();
 }

Резюме

В этом практическом занятии вы узнали, как читать данные из файла в String на Java. Существует несколько способов достичь этого, в том числе с использованием классов FileReader, Scanner, FileInputStream и BufferedReader. Мы рекомендуем поэкспериментировать с этими методами самостоятельно, чтобы понять, как они работают и какой из них наиболее подходящий для вашего конкретного случая использования. Не забудьте протестировать свой код и проверить путь к вашему текстовому файлу.