IO Fundamentos de Java -

A ¿Cuál es la IO?
El IO: (Input / Output):. De entrada y salida
El dispositivo IO:. Ordenadores y equipos de comunicación
Dispositivo de entrada: un micrófono, un escáner, un teclado, un ratón, etc. Los
dispositivos de salida: monitores, impresoras, proyectores, auriculares, de audio.

? En segundo lugar, ¿por qué el programa necesita IO que
la operación IO es un proceso relativo, en general, tenemos un programa de pensar sobre (programas de memoria).
Programa de las necesidades de los datos:. Los datos de entrada en el programa, entrar
Esa necesidad de almacenar datos, la la transferencia de datos a otros: salida.

Tres .IO Ilustración:
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

Y clasificación plantilla operación .IO cuatro corrientes:
Clasificación de transmisión en IO, diferentes puntos de vista, la clasificación no es la misma caída de:
1): El flujo se divide: los de entrada y salida arroyos.
2): La unidad de división de datos: flujo de bytes y una corriente de caracteres.
3): la división de la funcionalidad: los nodos de embalaje y flujo de la corriente.

Cuatro caudal de base :( flujo de salida de bytes, el flujo de entrada de bytes, el flujo de salida de caracteres, la corriente de entrada de caracteres )
de las cuatro corrientes son de clase base abstracta: las otras corrientes se heredan del flujo de cuatro bases
que no podemos crear cuatro objeto gran flujo de base, que sólo puede crear una subclase de objetos.
Cualquiera que sea la corriente, hay cerca de método se utiliza para cerrar el recurso.
Si el archivo de operación, usted tiene que abrir un objeto de secuencia que hemos asociado archivo de disco, si no lo hace cerca del recurso, a continuación, el archivo del disco ha sido referenciado por el programa no puede ser eliminado, no se puede cambiar.
Aquí Insertar imagen Descripción
sistema familiar IO:
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
las operaciones de la plantilla IO corrientes:
1): cree el origen o destino objetos (pozos excavados).
Tomemos el ejemplo secuencia de archivo:
Introduzca el siguiente: el el flujo de datos en el archivo de programa, el archivo es la fuente, el programa de destino.
operación de salida:. el flujo de datos en el programa en un archivo, el archivo es el objetivo, la fuente de programa
2): Crear IO objeto de flujo ( agua).
entrada: Crear objetos de flujo de entrada.
salida: Crear un objeto de flujo de salida.
3): a específicos IO operación
operaciones de entrada: un objeto flujo de entrada leen método.
salida método de operación :. Comentario de la corriente objeto de salida
4): Cerrar el recurso (no se olvide). Una vez que el recurso está cerrado, no se puede utilizar Los objetos, de lo contrario un error.
Operaciones de entrada: un .close objeto de flujo de entrada ();
operación de salida: salida objeto Stream .close ().

Liuzizhenyan operación IO arroyos:
leer en, escribir a cabo .
Time Coming: Ven destacar es la entrada, leer las instrucciones son método de lectura.
Escriba: estresado es la salida, se explica el método de escritura de escritura.

corriente presentación V.
flujo de salida de bytes (1) el archivo
Aquí Insertar imagen Descripción
(2) la salida de archivo de flujo de bytes
Aquí Insertar imagen Descripción
byte (3) el uso de una operación de copia de archivo se completa el flujo
Aquí Insertar imagen Descripción
(4) se cierran automáticamente los recursos proporcionados a modo Java7
Aquí Insertar imagen Descripción
(5 ) de caracteres de salida secuencia de archivo
Aquí Insertar imagen Descripción
concepto de memoria intermedia:
actualización) operación de vaciado (, el flujo de salida son método flush:
acceso a un ordenador a dispositivos externos (archivos de disco), el acceso directo a la memoria es mucho más lento que si cada uno debe escribir directamente a escribir a un archivo de disco, la CPU pasará más tiempo, entonces podemos preparar un búfer de memoria, cada vez que el programa de métodos de escritura se escriben directamente en la memoria intermedia, cuando el búfer de memoria está llena, el sistema sólo entonces búfer el contenido de una escritura de una sola vez a un archivo de disco.
las ventajas de usar búfer:
1: aumento de uso de CPU.
2:. la oportunidad de hacer retroceder los datos escritos
de flujo de bytes, el método de descarga no es cada papel (sólo una parte del flujo de bytes el papel del flujo de buffer) para el flujo de caracteres están trabajando.
Si llamamos al método close, los recursos del sistema antes del cierre, se llamar primero al método flush.
el sistema operativo utiliza la etiqueta de cierre de -1 indica un archivo de disco.
tamaño de búfer normalmente la capacidad utilizada múltiplo entero rendimiento IO puede ser mejorado.

Aquí Insertar imagen Descripción
(6) Embalaje de flujo y el tampón fluyen visión general
de flujo de proceso / flujo de paquetes (en relación a la corriente de los nodos más altos) patrón de diseño decorativo / Modo de embalaje:
1: cueros las diferencias subyacentes nodos Stream, y externo para proporcionar una entrada más conveniente / salida función, de modo que sólo se preocupan por la operación corriente de avanzada.
2: proceso de corriente nodo paquete de flujo, para operar directamente con el flujo de procesamiento, por lo que el flujo de los nodos de dispositivos subyacentes hacer operaciones IO.
3: flujo de proceso puede simplemente cerrar
la corriente de embalaje cómo distinguir: código de escritura y objetos encontrados para crear objetos cuando se necesita para pasar a otro objeto de secuencia.
nueva fuente de nuevos envases (objeto de secuencia);

Lo que es corriente tamponada:
. Una corriente de envases, con el propósito de actuar como un amortiguador
BufferedInputStream:
BufferedOutputStream:
BufferedReader:
BufferedWriter:

búfer de la secuencia objeto:
. cuando el flujo operativo, usado para definir una matriz de bytes / char
Int Read (): cada vez que un byte es leído desde el archivo de disco el archivo del disco es muy bajo rendimiento de explotación directa.
Solución: definir una matriz como un amortiguador
byte [] buffer = nuevo byte [ 1024] ;. la matriz del separador es en realidad una
sola vez leído desde el archivo de disco en bytes por lo que desde 1024, el número de operaciones de menos de archivos de disco, ---. -.> rendimiento se puede mejorar
Dado que podemos pensar, la empresa SUN ha sido pensado durante mucho tiempo para proporcionar un tamaño de búfer predeterminado es 8192 (1024 * 8), por lo general no cambian el tamaño.
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
(7) de flujo de búfer de caracteres
Aquí Insertar imagen Descripción
(8) conmutaciones secuencia de memoria y
convertir el flujo: el flujo de caracteres en un flujo de bytes:
la InputStreamReader: flujo de entrada de bytes en la entrada de caracteres Tráfico de
la OutputStreamWriter: el flujo de salida de bytes con la corriente de salida de caracteres.

¿Por qué corriente a su vez el carácter de bytes, sin flujo de bytes de transferencia de personajes.
Flujo de bytes pueden operar todos los archivos (archivo de texto plano / archivos binarios).
Secuencia de caracteres se utiliza para operar los chinos usan el propio texto plano es un flujo de bytes mejora.

secuencia de memoria (array corriente): modo de adaptador :( ampliar el conocimiento)
de la primera matriz de datos provisionales, será re-adquirido de la matriz existe.
1): secuencia de memoria de bytes: ByteArrayInputStream / ByteArrayOutputStream
2): secuencia de memoria Carácter: CharArrayReader desde / CharArrayWriter con
3):. corriente de cadena: StringReader / StringWriter (los datos se almacenan temporalmente en la cadena)

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
(9) El flujo combinado
combined corriente / flujo de secuencia (SequenceInputStream):
es decir, la pluralidad de flujos de entrada en un objeto corriente combinada.
Aquí Insertar imagen Descripción

(10) de impresión corriente de
flujo de impresión, los datos de impresión, el flujo de impresión es un flujo de salida única:
PrintStream: Byte de impresión corriente
PrintStream: flujo de impresión de caracteres
- para PrintStream es, cuando el campo Activar actualización,

O llame printf println, o métodos de formato de operación será de inmediato actualización.
Si no activa la actualización automática, es necesario actualizar manualmente o cuando el búfer está lleno, y luego actualizar automáticamente.
Utilice el flujo de impresión como la corriente de salida, entonces la operación de salida será especialmente sencillo, ya que el flujo de impresión:
proporcionar una impresión: impresión no envoltura
proporciona println: impresa back línea a
imprimir e imprimir apoyo método println / salidas de varios tipos de datos, recuerde vacío println (objeto x) . Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
(11) Descripción general del IO estándar y
estándar de IO:
estándar de entrada:. teclado de entrada de datos al programa
de salida estándar: los datos sobre el programa de visualización de la pantalla.

clase System tiene dos constantes:
la InputStream in = la System.in;
PrintStream la System.out = OUT;

Redirigir el funcionamiento normal de la corriente:
entrada estándar: los datos de entrada de teclado para el programa.
Fuente reasignar la entrada de teclado ya no es, pero un archivo.
Estático SETIN vacío (en el InputStream) redistribuir el flujo de entrada "estándar".
A partir de entonces, el System.in datos de origen se desarrolló por fuentes SETIN
salida estándar: visualizar los datos del programa en la pantalla.
Objetivo ya no es reasignar la pantalla de salida, en lugar de un archivo.
Estático vacío de replanteo (PrintStream OUT) reasignación flujo de salida "estándar".

Aquí Insertar imagen Descripción

Aquí Insertar imagen Descripción
(12) el flujo de datos
del flujo de datos, una lectura / escritura de los tipos de datos arbitrarios de métodos:
el DataOutputStream:. Proporcionar método writeXXX (valor xxx)
DataInputStream :. Proporcionar readXXX () Método
Nota: writeXXX y readXXX deben ser correspondencia, datos writeByte de escritura, sólo que esta vez usando readByte leídas de nuevo.
Aquí Insertar imagen Descripción
(13) flujo de la tubería
del canal de circulación: la implementación de la interacción de datos entre los dos hilos.
la PipedInputStream
la PipedOutputStream
PipedReder
PipedWriter

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Seis .NIO
NIO: Nueva IO:
Desde el JDK1.4 comenzando propuso una nueva IO, se puede convertir un archivo de disco en la memoria, podríamos leer los datos en la memoria.
Almacenado en paquete java.nio.
El Java NIO (nueva IO) API IO es una nueva versión de Java 1.4 desde el comienzo de la introducción, puede reemplazar la API estándar de Java IO
ahora se utiliza principalmente para servidores, para los que todavía escribir código usando tradicional IO es suficiente.
en JDK1.7 extraer el IO actualizada, NIO2.0 .-> archivos (File Tools).

Aquí Insertar imagen Descripción
Siete .IO resumen de la corriente
Aquí Insertar imagen Descripción

Publicado 99 artículos originales · ganado elogios 2 · Vistas 2595

Supongo que te gusta

Origin blog.csdn.net/weixin_41588751/article/details/105316414
Recomendado
Clasificación