Flujo Java IO: [Construya un sistema de gestión de información desde cero]

Java I/O Stream: [Construcción de un sistema de gestión de información desde cero]


¿Qué es el flujo de E/S de Java?

introducir

El flujo IO de Java (flujo de entrada/salida) es un mecanismo para leer y escribir datos. Los flujos de E/S proporcionan una forma unificada de manejar diferentes tipos de entrada y salida, incluidos

Incluyendo archivos, conexiones de red, buffers de memoria, etc.

En Java, el flujo de IO se divide en flujo de entrada (InputStream) y flujo de salida (OutputStream) según la dirección del flujo de datos. Los flujos de entrada se utilizan para leer fuentes de datos (por ejemplo, archivos, conexiones de red)

Mientras se leen datos de un flujo de salida, se utiliza un flujo de salida para escribir datos en un destino (por ejemplo, un archivo, una conexión de red). Este enfoque de transmisión permite el acceso transparente a diferentes tipos de fuentes de datos sin

Detalles de implementación del fondo del corazón.

Java proporciona muchos tipos diferentes de flujos de IO para satisfacer las necesidades de diferentes escenarios. Los flujos de IO comunes incluyen ByteStream y CharacterStream. Personaje

Throttle lee y escribe en bytes, principalmente utilizando subclases de InputStream y OutputStream, como FileInputStream y FileOutputStream. secuencia de personajes con

Leer y escribir en unidades de caracteres, utilizando principalmente subclases de Reader y Writer, como FileReader y FileWriter. La secuencia de caracteres es más conveniente al procesar datos de texto, puede hacerlo directamente

Maneja directamente caracteres Unicode.

Además, Java también proporciona un flujo almacenado en búfer, que encapsula el flujo de entrada o el flujo de salida subyacente y proporciona un búfer en la memoria, lo que puede mejorar el rendimiento de IO.

actuación. Las secuencias almacenadas en búfer se utilizan a menudo con otros tipos de secuencias, como BufferedInputStream y BufferedOutputStream.

Además de flujos de bytes y flujos de caracteres, Java también proporciona flujos de objetos (Object Stream) para serializar y deserializar objetos Java. Los flujos de objetos pueden convertir objetos Java al orden de bytes

y luego se guarda en un archivo o se envía a la red, también es posible restaurar la secuencia de bytes en un objeto Java. Los flujos de objetos se implementan utilizando ObjectInputStream y ObjectOutputStream.

ahora.

En resumen, el flujo IO de Java es una herramienta poderosa y flexible que puede leer y escribir datos fácilmente. Proporciona una interfaz unificada que abstrae diferentes tipos de fuentes de datos.

Los detalles permiten a los desarrolladores centrarse más en la lógica empresarial sin prestar demasiada atención a las operaciones de IO subyacentes.

entender

Los flujos de IO se pueden utilizar cuando necesitamos leer o escribir datos en Java. Puede pensar en un flujo de IO como una tubería donde los datos fluyen de un lugar a otro.

Hay dos tipos de flujos de IO: flujos de entrada y flujos de salida. Los flujos de entrada se utilizan para leer datos de una fuente de datos (como un archivo o una red), mientras que los flujos de salida se utilizan para escribir datos en un destino (como un archivo o una red).

red).

Hay dos flujos básicos en el flujo IO: flujo de bytes y flujo de caracteres. Los flujos de bytes se ocupan de datos sin procesar (como imágenes o audio), mientras que los flujos de caracteres se ocupan de datos de texto. El flujo de personajes es más cuadrado.

Manejan texto fácilmente porque pueden manejar caracteres Unicode directamente.

Para mejorar el rendimiento, también podemos utilizar transmisiones almacenadas en búfer. Equivale a colocar un búfer en ambos extremos del flujo, que puede leer o escribir varios datos a la vez, lo que puede mejorar la eficiencia.

Además, si queremos guardar objetos o enviarlos a la red, podemos utilizar flujos de objetos. Los flujos de objetos pueden convertir objetos Java en secuencias de bytes y pueden revertir este proceso.

proceso, desde una secuencia de bytes hasta un objeto Java.

En general, el flujo IO de Java es una herramienta para procesar entradas y salidas, que puede ayudarnos a leer y escribir datos. Proporciona diferentes tipos de flujos para manejar diferentes tipos de datos.

datos y puede mejorar el rendimiento y manejar operaciones complejas almacenando en búfer flujos y flujos de objetos. El uso de flujos de IO nos permite procesar datos más fácilmente sin prestar demasiada atención a los detalles de bajo nivel.

La diferencia entre flujo de bytes y flujo de caracteres

El flujo de bytes lee un solo byte y el flujo de caracteres lee un solo carácter (un carácter depende de la codificación y el byte correspondiente también es diferente, como la codificación UTF-8 es de 3 bytes, la codificación china es 2

bytes. ) El flujo de bytes se usa para procesar archivos binarios (imágenes, MP3, archivos de video) y el flujo de caracteres se usa para procesar archivos de texto (puede considerarse como un archivo binario especial, que usa un cierto

código, legible por humanos).

En resumen, los bytes son para las computadoras y los caracteres son para los humanos.

El papel de los flujos de E/S de Java

El flujo IO de Java se utiliza principalmente para leer y escribir datos. Proporciona una forma cómoda y uniforme de manejar diferentes tipos de entrada y salida, incluidos archivos, redes, memoria, etc.

Específicamente, los flujos IO de Java se pueden utilizar para:

  • Leer datos o escribir datos en un archivo.
  • La entrada y salida de datos se realiza a través de una conexión de red.
  • Cree buffers en la memoria para almacenar datos temporalmente.
  • Manejar datos de texto, lectura y escritura en unidades de caracteres.
  • Maneja datos binarios, leyendo y escribiendo bytes.

Al utilizar los flujos IO de Java, puede leer fácilmente el contenido de archivos, escribir datos en archivos, comunicarse con programas en otras computadoras, procesar el contenido de archivos de texto y transferir datos entre diferentes fuentes de datos.

Los flujos de IO de Java son una herramienta útil para manejar entradas y salidas, lo que facilita la lectura y escritura de diferentes tipos de datos sin tener que preocuparse mucho por los detalles subyacentes.

Métodos de flujo de E/S de Java

Método de flujo de entrada

método lector

Método de flujo de salida

método de escritor

Todas las clases del sistema de E/S Java

Ejemplo de uso

En Java, leer y escribir datos utilizando flujos de E/S implica los siguientes pasos básicos:

  1. Abrir una secuencia: primero, debe crear un objeto de secuencia correspondiente para representar la fuente de datos de entrada o salida. Por ejemplo, utilícelo FileInputStreampara leer un archivo y utilícelo FileOutputStreampara escribir un archivo.
  2. Leer o escribir datos: llame al método correspondiente a través del objeto de flujo para leer o escribir datos. Por ejemplo, para una secuencia de bytes, puede usar read()un método para leer un byte y write()un método para escribir un byte; para una secuencia de caracteres, puede usar read()un método para leer un carácter y un write()método para escribir un carácter.
  3. Cerrar la transmisión: después de leer o escribir los datos, la transmisión debe cerrarse a tiempo para liberar los recursos relacionados. La transmisión se puede cerrar usando close()el método.

Ejemplo:

import java.io.*;

public class IOExample {
    
    
    public static void main(String[] args) {
    
    
        try {
    
    
            // 1. 使用字节流读取文件
            FileInputStream fis = new FileInputStream("input.txt");
            int data;

            while ((data = fis.read()) != -1) {
    
    
                // 处理读取到的字节数据
                System.out.print((char) data);
            }

            fis.close(); // 关闭流

            // 2. 使用字符流写入文件
            FileWriter fw = new FileWriter("output.txt");
            String content = "Hello, World!";

            fw.write(content); // 写入数据

            fw.close(); // 关闭流
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
}

En el ejemplo anterior, primero cree un FileInputStreamarchivo para leer y utilice read()el método para leer el contenido del archivo byte a byte. Luego, creó un

FileWriterpara escribir en un archivo y usar write()el método para escribir una cadena en un archivo.

Cabe señalar que durante el proceso de lectura o escritura de datos, pueden ocurrir excepciones IOException, por lo que las excepciones deben manejarse adecuadamente.

Es necesario seleccionar el tipo de flujo apropiado de acuerdo con la fuente de datos y los requisitos específicos, y seguir los pasos operativos básicos de abrir, leer/escribir y cerrar el flujo para usar el flujo de E/S de Java.

El efecto del uso de flujos de E/S de Java en aplicaciones prácticas

  1. Lectura y escritura de datos: a través del flujo de E/S de Java, puede leer y escribir datos en archivos fácilmente. Esto facilita la manipulación de archivos, como leer contenido de texto, copiar archivos, escribir archivos de configuración, etc.
  2. Comunicación de red: el flujo de E/S de Java proporciona clases como Socket y ServerSocket, que se pueden utilizar para la comunicación de red. A través del flujo de E/S de la red, la comunicación entre el cliente y el servidor se puede establecer fácilmente para la transmisión de datos y la interacción de mensajes.
  3. Almacenamiento en búfer de memoria: los flujos almacenados en búfer en los flujos de E/S de Java (como BufferedReader y BufferedWriter) pueden mejorar el rendimiento de E/S. El uso de flujos almacenados en búfer puede reducir las operaciones frecuentes de lectura y escritura en la fuente de datos subyacente. Al crear búferes en la memoria, los datos se pueden procesar en lotes para acelerar la lectura y escritura de datos.
  4. Serialización de objetos: el flujo de E/S de Java proporciona flujos de objetos (ObjectInputStream y ObjectOutputStream) para la serialización y deserialización de objetos. Esto hace posible convertir objetos Java en flujos de bytes para almacenamiento o transmisión, y restaurar flujos de bytes en objetos Java, lo que juega un papel importante en los sistemas distribuidos y la persistencia de datos.
  5. Procesamiento de datos de texto: los flujos de caracteres de Java (Reader y Writer) se utilizan principalmente para procesar datos de texto, admitir conjuntos de caracteres específicos y proporcionar funciones de codificación y decodificación de caracteres. Los flujos de caracteres pueden leer y escribir fácilmente archivos de texto y realizar operaciones de cadenas, como leer datos en formatos CSV, XML o JSON.

En general, los flujos de E/S de Java proporcionan a los desarrolladores una variedad de herramientas para leer y escribir datos. Ayudan a simplificar el procesamiento de diferentes tipos de datos y mejorar la aplicación

Trabajar.
5. Procesamiento de datos de texto: los flujos de caracteres de Java (Reader y Writer) se utilizan principalmente para procesar datos de texto, admitir conjuntos de caracteres específicos y proporcionar funciones de codificación y decodificación de caracteres. Los flujos de caracteres pueden leer y escribir fácilmente archivos de texto y realizar operaciones de cadenas, como leer datos en formatos CSV, XML o JSON.

En general, los flujos de E/S de Java proporcionan a los desarrolladores una variedad de herramientas para leer y escribir datos. Ayudan a simplificar el procesamiento de diferentes tipos de datos y mejorar la aplicación

flexibilidad, escalabilidad y eficiencia. Ya sea procesando archivos, comunicaciones de red, almacenamiento en búfer de datos o serialización de objetos, los flujos de E/S de Java desempeñan un papel importante.

Supongo que te gusta

Origin blog.csdn.net/m0_73879806/article/details/132262396
Recomendado
Clasificación