Primero discutámoslos para obtener la comprensión junto con un ejemplo para interpretar las diferencias. Aquí primero discutiremos la clase FileReader. Entonces, comenzar con la clase FileReader en Java se usa para leer datos del archivo. Devuelve datos en formato de byte como la clase FileInputStream . Es una clase orientada a caracteres que se utiliza para el manejo de archivos en Java. Esta clase hereda de la clase InputStreamReader . FileReader se utiliza para leer secuencias de caracteres.
Sintaxis:
Crear usando el nombre del archivo
FileReader input = new FileReader(String name);
Crear usando un objeto del archivo
FileReader input = new FileReader(File fileObj);
Implementación:
Consideremos un archivo de muestra donde estamos leyendo los datos del archivo de texto Gfg.txt usando la clase Java FileReader. Suponemos que tenemos los siguientes datos en el archivo, a saber, el archivo «Gfg.txt» de la siguiente manera:
Welcome to GeeksForGeeks.
Ejemplo
Java
// Java Program to Illustrate FileReader class // Importing class import java.io.FileReader; // Main class // FileReaderExample public class GFG { // Main driver method public static void main(String args[]) throws Exception { // Creating an object of FileReader class to // read content from file in local directory FileReader fr = new FileReader("C:\\Gfg.txt"); int i; // Reads from the file while ((i = fr.read()) != -1) { // Printing the content inside the file System.out.print((char)i); } // Closing the connections to // avoid memory space fr.close(); } }
Producción:
Welcome to GeeksForGeeks
Ahora, pensando en la segunda forma, que es a través de la clase FileInputStream. Está presente en el mismo paquete, a saber, java.io, que recupera bytes de un archivo. Se utiliza para leer datos orientados a bytes (flujos de bytes sin procesar) como datos de imagen, audio y video. También puede leer datos de un flujo de caracteres. Sin embargo, se recomienda la clase FileReader para leer secuencias de caracteres.
Sintaxis:
Creando usando la ruta al archivo
FileInputStream input = new FileInputStream(stringPath);
Crear usando un objeto del archivo
FileInputStream input = new FileInputStream(File fileObject);
Nota: Antes de ejecutar el código, se requiere crear un archivo de texto llamado «Gfg.txt». En este archivo, tenemos el siguiente contenido: «Bienvenido a GeeksForGeeks»
Ejemplo
Java
// Java Program to Illustrate FileInputStream class // Importing class from java.io package import java.io.FileInputStream; // Main class public class GFG { // Main driver method public static void main(String args[]) { // Try block to check for exceptions try { // Creating an object of FileInputStream class // in main() body to get file FileInputStream input = new FileInputStream("Gfg.txt"); // Display message only System.out.println("Data in the file: "); // Reading the first byte int i = input.read(); while (i != -1) { System.out.print((char)i); // Reads next byte from the file using // next() method i = input.read(); } // Closing the file input.close(); } // Catch block to handle the exceptions catch (Exception e) { // Print the exception on the console System.out.println(e); } } }
Producción:
Data in the file: Welcome to GeeksForGeeks
Ahora, después de comprender ambos, concluyamos las diferencias entre ellos que se muestran a continuación en el formato tabular.
FileInputStream |
Lector de archivos |
---|---|
Stream es un objeto basado en bytes que puede leer y escribir bytes. | Reader está basado en caracteres, se puede utilizar para leer o escribir caracteres. |
FileInputStream está basado en bytes, se puede usar para leer bytes. | FileReader está basado en caracteres, se puede utilizar para leer caracteres. |
Stream se utiliza para entrada/salida binaria | El lector se utiliza para la entrada/salida de caracteres |
FileInputStream se utiliza para leer archivos binarios. | FileReader se utiliza para leer archivos de texto en la codificación predeterminada de la plataforma. |
La serialización y la deserialización se pueden realizar con FileInputStream y ObjectInputStream, y los objetos serializados se pueden guardar en un archivo. La serialización convierte un objeto en un flujo de bytes y la deserialización lo vuelve a convertir en un objeto. | FileReader no se usa para serialización y deserialización, ya que lee caracteres, no bytes. |
FileInputStream es descendiente de la clase InputStream. | FileReader se extiende de la clase Reader |
El método read() de FileInputStream puede leer un byte a la vez o varios bytes en una array de bytes. | El método read() de FileReader puede leer un carácter a la vez o varios caracteres en una array |
Publicación traducida automáticamente
Artículo escrito por sanketnagare y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA