Cómo leer un archivo a String

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Almacenar datos en un archivo es útil para el almacenamiento permanente. En Java, hay cuatro clases que se pueden utilizar para leer archivos: FileReader, Scanner, FileInputStream y BufferedReader. Estas clases son parte del paquete java.io y se utilizan para el manejo de archivos en 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{{"Cómo leer un archivo a String"}} java/files -.-> lab-117443{{"Cómo leer un archivo a String"}} java/create_write_files -.-> lab-117443{{"Cómo leer un archivo a String"}} java/read_files -.-> lab-117443{{"Cómo leer un archivo a String"}} java/io -.-> lab-117443{{"Cómo leer un archivo a String"}} end

Crear un archivo de ejemplo

Comience creando un archivo de ejemplo .txt para leer. Puede utilizar cualquier editor de texto para crear este archivo, y puede contener cualquier dato que desee leer. Ejemplo:

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

Importar las clases necesarias

Para leer el archivo y convertir su contenido en una cadena, necesitará importar las siguientes clases:

import java.io.*;

Leyendo un archivo con FileReader

Utilice la clase FileReader para leer datos del archivo. Un objeto de la clase FileReader apunta al principio de un archivo. Utilice un búfer de tamaño 1 para leer cada carácter del archivo y agréguelo a una variable String.

try {
     // Paso 1: Crear un nuevo objeto FileReader
     FileReader fr = new FileReader("path/to/your/file.txt");

     // Paso 2: Crear una variable String para almacenar el contenido del archivo
     String fileData = "";

     // Paso 3: Crear una variable entera para almacenar cada carácter leído
     int c;

     // Paso 4: Continuar leyendo el archivo hasta que se haya alcanzado el final del archivo
     while ((c = fr.read())!= -1) {

         // Paso 5: Agregar cada carácter leído a la cadena fileData
         fileData += (char) c;
     }

     // Paso 6: Imprimir el contenido del archivo
     System.out.println(fileData);

     // Paso 7: Cerrar el lector de archivos
     fr.close();

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

Leyendo un archivo con Scanner

Utilice la clase Scanner para leer datos de un archivo de texto. Debe proporcionar el archivo de texto como fuente de entrada al scanner, luego delimitar el scanner con el método \\Z para leer todos los datos a la vez y convertirlos en una cadena.

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();
 }

Leyendo un archivo con FileInputStream

Utilice la clase FileInputStream para leer datos directamente desde el archivo en un arreglo de bytes. Cree un búfer del tamaño que desee (10 bytes en nuestro ejemplo) para almacenar temporalmente los datos leídos del archivo, luego agréguelos a un objeto StringBuilder. Finalmente, usamos el método toString() para convertir el contenido del objeto StringBuilder en una 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();
 }

Leyendo un archivo con BufferedReader

Utilice la clase BufferedReader para leer datos de un archivo de manera sencilla. Leerá todos los datos a la vez, y luego podrá imprimirlos línea por línea utilizando el método 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();
 }

Resumen

En este laboratorio, has aprendido cómo leer datos de un archivo a una String en Java. Hay múltiples maneras de lograr esto, incluyendo el uso de las clases FileReader, Scanner, FileInputStream y BufferedReader. Te recomendamos experimentar con estos métodos por ti mismo, para entender cómo funcionan y cuál es el más adecuado para tu caso de uso específico. Recuerda probar tu código y verificar la ruta a tu archivo de texto.