java escribir archivos - ¿Cuál es la forma más sencilla de leer un archivo en String?





4 Answers

Desde Java 7 (Descripción de la API) en adelante puedes hacer:

new String(Files.readAllBytes(Paths.get(filePath)), StandardCharsets.UTF_8);

Donde filePath es una cadena que representa el archivo que desea cargar.

como txt netbeans

Esta pregunta ya tiene una respuesta aquí:

Estoy tratando de leer un archivo de texto simple en una cadena. Por supuesto, existe la forma habitual de obtener el flujo de entrada e iterar con readLine () y leer los contenidos en String.

Habiendo hecho esto cientos de veces en el pasado, me preguntaba cómo puedo hacer esto en líneas de código mínimas. ¿No hay algo en java como String fileContents = XXX.readFile(myFile/*File*/) ... en lugar de algo tan simple como esto?

Sé que hay bibliotecas como Apache Commons IO que proporcionan tales simplificaciones o incluso puedo escribir una clase Util simple para hacer esto. Pero todo lo que me pregunto es: esta es una operación tan frecuente que todos necesitan, ¿por qué no proporciona Java una función tan simple? ¿No existe realmente un solo método en algún lugar para leer un archivo en una cadena con alguna codificación predeterminada o especificada?




Esto debería funcionar para usted:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public static void main(String[] args) throws IOException {
    String content = new String(Files.readAllBytes(Paths.get("abc.java")));
}



No escriba su propia clase de utilidad para hacer esto: recomendaría usar Guava , que está lleno de todo tipo de bondades. En este caso, querrá la clase com.google.common.io.Files (si realmente solo está leyendo un archivo) o CharStreams para una lectura más general. Tiene métodos para leer los datos en una lista de cadenas ( readLines ) o totalmente ( toString ).

También tiene métodos útiles similares para datos binarios. Y luego está el resto de la biblioteca ...

Estoy de acuerdo en que es molesto que no haya nada similar en las bibliotecas estándar. Diablos, el solo hecho de poder proporcionar un CharSet a un FileReader haría la vida un poco más simple ...




Tristemente no.

Estoy de acuerdo en que una operación tan frecuente debería tener una implementación más fácil que la copia de la línea de entrada en línea en el bucle, pero tendrá que escribir un método auxiliar o usar una biblioteca externa.




Related