Flujo de IO: flujo de bytes

1. Byte de flujo de salida OutPutStream 

java. io. outputstream: esta clase abstracta es la superclase de todas las clases que representan flujos de bytes de salida.
Define algunos métodos de miembros comunes a las subclases:

  • public void close (): cierra este flujo de salida y libera cualquier recurso del sistema asociado con este flujo.
  • public void flush (): Elimina este flujo de salida y fuerza la escritura de los bytes de salida almacenados en búfer.
  • public void write (byte [] b): escribe b.length bytes de la matriz de bytes especificada en este flujo de salida.
  • public void write (byte [] b, int off, int len): escribe los bytes de Len desde la matriz de bytes especificada y la salida a este flujo de salida desde el offset desactivado.
  • public abstract void write (int b): envía el byte especificado a la secuencia.

java. io.FileOutputStream extiende OutputStream
FileOutputstream: Flujo de salida de bytes de archivo

Función: Escribe los datos en la memoria en el archivo en el disco duro
Método de construcción:

  • FileOutputstream (nombre de cadena) crea una secuencia de archivo de salida que escribe datos en un archivo con el nombre especificado.
  • FileOutputstream (archivo de archivo) crea un flujo de salida de archivo que escribe datos en el archivo representado por el objeto de archivo especificado.

Parámetros: el propósito de escribir los datos
Nombre de la cadena: el destino es la ruta de un archivo
Archivo de archivo: el destino es un archivo
El rol del constructor:

  • Crear un objeto FileOutputStream
  • Se creará un archivo vacío de acuerdo con la ruta del archivo / archivo pasada en el método de construcción
  • Apuntará el objeto FiLeOutputStream al archivo creado

El principio de escritura de datos (memoria -> disco duro)
programa java -> JVM (máquina virtual javo) -> 0S (sistema operativo) -> os llama al método de escritura de datos -> escribe datos en un archivo
Pasos para usar el flujo de salida de bytes (énfasis):

  • Cree un objeto FileOutputstream y pase el destino de los datos escritos en el constructor
  • Llame al método write en el objeto FileOutputStream para escribir los datos en el archivo
  • Liberar recursos (el uso de la transmisión ocupará una cierta cantidad de memoria, y la memoria debe borrarse después del uso para mejorar la eficiencia del programa)

Formas de escribir varios bytes a la vez: 

public void write (byte [] b): escribe b. bytes de longitud de la matriz de bytes especificada en este flujo de salida.

      Escribir varios bytes a la vez:
      si el primer byte escrito es un número positivo (0-127), se consultará la tabla ASCII cuando se muestre
      Si el primer byte escrito es un número negativo. Luego, el primer byte y el segundo byte, dos bytes forman una pantalla china, consulta la tabla de códigos predeterminados del sistema (GBK)

public void write (byte [] b, int off, int len): desde el especificado La matriz de bytes se escribe en len bytes y la salida a este flujo de salida a partir de offset off.
public void write (byte [] b, int off, int len): escribe una parte de la matriz de bytes en el archivo
int off: índice de inicio de la matriz
int Len: escribe unos pocos bytes

 Agregar y escribir datos

Agregar escritura / continuar escritura: use el método de construcción de dos parámetros
FileOutputStream (nombre de cadena, adición booleana) para crear una secuencia de archivo de salida que escriba datos en el archivo con el nombre especificado.
FileOutputStream (archivo de archivo, agregado booleano) Crea un flujo de salida de archivo que escribe datos en el archivo representado por el objeto File especificado.
Parámetros:
nombre de cadena, Archivo de archivo: el destino de los datos que se escribirán
booleano agregar: agregar escritura cambiar
verdadero: crear un objeto no sobrescribirá el archivo de origen, continuar agregando datos al final del archivo
falso: crear un nuevo archivo , sobrescribe el archivo fuente

Escribir nueva línea: escribir símbolo de nueva línea
windows: \ r \ n
linux: / n
mac: / r

2. Byte de flujo de entrada InPutStream

java .io. Inputstream: flujo de entrada de bytes
Esta clase abstracta es la superclase de todas las clases que representan flujos de entrada de bytes.
Define los métodos comunes a todas las subclases:
int read () lee el siguiente byte de datos del flujo de entrada.
int read (byte [] b) lee un cierto número de bytes del flujo de entrada y lo almacena en la matriz de búfer b.
void close () Cierra este flujo de entrada y libera todos los recursos del sistema asociados con el flujo.
java. io. FileInputStream extiende InputStream
FileInputstream: flujo de entrada de byte de archivo
Función: lee los datos en el archivo del disco duro en la memoria usando el
método de construcción:
FileInputstream (nombre de cadena)
FileInputStream (archivo de archivo)
Parámetros : lee la fuente de datos del archivo
Nombre de cadena: la ruta del
archivo Archivo de archivo:
la función del método de construcción del archivo :
1. Se creará un objeto FileInputStream
2. El objeto FileInputstream se especificará en el archivo que se leerá en el método de construcción

Leer datos (leer uno)

El principio de lectura de datos (disco duro -> memoria)
programa java -> JVM -> 0S -> Método de lectura de datos del sistema operativo -> archivo de lectura
Pasos para usar el flujo de entrada de bytes (énfasis):
1. Cree un Objeto FileInputStream, vincula la fuente de datos para que se lean en el constructor
2. Usa el método read en el objeto FileInputstream para leer el archivo
3. Libera recursos

El archivo de lectura anterior es un proceso repetido; se recomienda usar un ciclo para completar, cuando no sepamos cuántos bytes hay en el archivo, use un ciclo while para completar.

La condición de finalización del ciclo while, el ciclo finaliza cuando devuelve -1.

Expresión booleana (len = fis.read ())! = - 1

1.fis. Read (): lee un byte
2.len = fis.read (): asigna el byte leído a la variable len
3. (len = fis.read ())! = - 1: determina si la variable Len no es igual a -1
 

Leer datos (leer varios)

Flujo de entrada de bytes: el método de leer varios bytes a la vez:
int read (byte [] b) lee un cierto número de bytes del flujo de entrada y los almacena en la matriz de búfer b.
Hay dos cosas claras:
1. ¿Cuál es la función del byte de parámetro de método []?

      Juega un papel de búfer,
      la longitud de las matrices de varios bytes que se leen cada vez se define generalmente como 1024 (1 kb) o un múltiplo entero de 1024.
2. ¿Cuál es el valor de retorno del método int? El número
      de bytes válidos leídos cada tiempo

El método de construcción de la clase
String String (byte [] bytes): convierte la matriz de bytes en una cadena
String (byte [] bytes, int offset, int length) Convierte una parte de la matriz de bytes en una string offset: el principio de la matriz Longitud del índice: el número de bytes convertidos

No sé cuántos bytes hay en el archivo, así que uso el
ciclo while para finalizar el ciclo while y leo hasta el final de -1.

Copia de archivos: leer y escribir

 

Supongo que te gusta

Origin blog.csdn.net/weixin_51980491/article/details/113105325
Recomendado
Clasificación