JDK7 presenta una nueva clase de operación de archivo java.nio.file.file, que contiene muchos métodos útiles para manipular archivos, como verificar si el archivo es un archivo oculto o verificar si el archivo es un archivo de solo lectura. Los desarrolladores también pueden usar el método Files.ReadallBytes (ruta) para leer todo el archivo en la memoria. Este método asegura que cuando se lean todos los contenidos de bytes del archivo, los atributos del archivo están cerrados, de lo contrario se producirá una excepción IO u otras excepciones sin control. Esto significa que después de leer el archivo al último contenido de bloque, no hay necesidad de cerrar el archivo.
Tenga en cuenta que este método no es adecuado para leer archivos grandes porque puede haber un espacio de memoria insuficiente. Los desarrolladores también deben especificar la codificación de caracteres del archivo para evitar cualquier excepción o error de análisis.
Si desea leer el archivo como una cadena, también puede usar el método ReadallLines (ruta de ruta, Charset CS), que es similar al método anterior, y no es necesario cerrar el archivo después de leer el archivo. Pero no devuelve una matriz de bytes, sino una variedad de cadenas. Además, Java8 anula este método, sin especificar un conjunto de caracteres, directamente utilizando la codificación UTF-8 para la conversión de cadenas.
Si desea leer el archivo como una línea de cadena por línea, puede usar el método Files.lines (), que devuelve la secuencia de cadenas del archivo de lectura y convierte los bytes en caracteres utilizando la codificación UTF-8. Usando el método foreach (), solo puede usar una línea de código Java para generar todo el contenido del archivo a la consola, como el tercer fragmento de código a continuación.
La copia del código es la siguiente:
import java.io.ioException;
import java.nio.charset.standardcharsets;
import java.nio.file.files;
import java.nio.file.path;
import java.util.list;
clase pública FILEREADINGTEST {
public static void main (string [] args) lanza ioexception {
// Java 7 Ejemplos
// files.readallbytes lee el archivo en la codificación UTF-8 de forma predeterminada.
System.out.println (new String (files.readallbytes (paths.get ("d: //jd.txt"))));
// 8 ejemplos de java
List <String> Lines = files.readallLines (ratts.get ("d: //jd.txt"), StandardCharSets.utf_8);
StringBuilder sb = new StringBuilder ();
for (línea de cadena: líneas) {
sb.append (línea);
}
Cadena fromFile = sb.ToString ();
System.out.println (fromfile);
}
}
Si no está usando JDK7, sino JDK8, entonces una línea de código puede completar la lectura del archivo.
La copia del código es la siguiente:
importar java.lang.system.out;
importar java.nio.file.files.readallbytes;
importar java.nio.file.paths.get;
import java.io.ioException;
clase pública FileToString {
public static void main (string [] args) lanza ioexception {
// se puede usar una línea de código para leer el archivo, el valor predeterminado es la codificación UTF-8
out.println (new String (readallBytes (get ("d: /jd.txt"))));
}
}
Si usa JDK8, también puede usar la API de transmisión para leer y escribir archivos, para que el código sea más conciso y eficiente.
En el siguiente ejemplo, el método Lines () devuelve una secuencia de cadena, y la cadena usa la codificación UTF-8. como sigue:
La copia del código es la siguiente:
import java.io.ioException;
import java.nio.charset.standardcharsets;
import java.nio.file.files;
import java.nio.file.path;
clase pública java8filereader {
public static void main (string [] args) lanza ioexception {
// Java 8 usa transmisión para leer archivos, que es más eficiente
Files.lines (paths.get ("d: //jd.txt"), StandardCharSets.utf_8) .ForEach (System.out :: println);
}
}
Algunos puntos a tener en cuenta en el ejemplo anterior:
1) El archivo puede ser grande y puede exceder el espacio de memoria.
2) Para emitir el registro, registre por qué el archivo no se puede leer o ningún error encontrado mientras lee el archivo.
3) Al convertir bytes en caracteres, se debe especificar la codificación de caracteres.
4) Para lidiar con la situación en la que el archivo no existe.
También tenga en cuenta que si el código del archivo de lectura es ANSI codificando, el ejemplo anterior informará un Java.nio.Charset.MalFormedInputeException: Error de entrada = 1 Error al leer el contenido del archivo.