Diferencia entre revisiones de «Entrada/Saída»

De MediaWiki
Ir a la navegación Ir a la búsqueda
(Página creada con «Nos paquetes da API de Java java.io e java.nio, almacénase un amplo conxunto de ferramentas para a manipulación da entrada e saída de datos do programa. Entre estas ferr...»)
 
Línea 2: Línea 2:
 
Comezaremos coas clases incluídas en java.io, que seran subclases de InputStream, OutputStream, Reader e Writer. Utilizaremos tamén a clase File ara manipular información sobre ficheiros e faremos compresión e serialización de datos.
 
Comezaremos coas clases incluídas en java.io, que seran subclases de InputStream, OutputStream, Reader e Writer. Utilizaremos tamén a clase File ara manipular información sobre ficheiros e faremos compresión e serialización de datos.
 
No caso do paquete java.nio, a "n" que aparece no seu nome fai referencia a que foi introducido posteriormente a java.io e por tanto era "new I/O" no momento da súa introdución.
 
No caso do paquete java.nio, a "n" que aparece no seu nome fai referencia a que foi introducido posteriormente a java.io e por tanto era "new I/O" no momento da súa introdución.
 +
== Fluxos (Streams)
 +
O tratamento fundamental de datos de E/S baséase na idea da manipulación de fluxos, é dicir, unha secuencia de datos na que se pode colocar nova información (escribir) ou consumir a información que contén (lectura).
 +
Cando nos nosos programas utilicemos clases de java.io para, por exemplo, ler ficheiros, comunicar procesos nunha rede ou facer saídas a un terminal, estaremos utilizando diferentes tipos de fluxos.
 +
No caso de java.nio, aparece o concepto de canal que terá as mesmas utilidades pero que levará asociado un buffer.
 +
Brevemente, este é o listado dos tipos de Stream que poderemos utilizar:
 +
*InputStream, OutputStream
 +
Clases abstractas que definen as funcionalidades básicas para ler ou escribir unha secuencia de bytes sen estrutura. O resto de fluxos de bytes constrúense a partires delas.
 +
*Reader, Writer
 +
Clases abstractas que definen as funcionalidades básicas para ler ou escribir unha secuencia de caracteres, con soporte para a codificación Unicode. O resto de fluxos de caracteres constrúense a partires delas.
 +
*InputStreamReader, OutputStreamWriter
 +
Clases que fan de ponte entre fluxos de bytes e de caracteres facendo as conversións precisas segundo a codificación utilizada. Por exemplo, coa codificación Unicode, un carácter non se corresponde cun byte.
 +
*DataInputStream, DataOutputStream
 +
Clases especializadas en permitir ler e escribir tipos de datos multibyte, como os tipos numéricos primitivos ou os obxectos String.
 +
*ObjectInputStream, ObjectOutputStream
 +
Clases especializadas en permitir serializar obxectos e reconstruílos.
 +
*BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter
 +
Clases especializadas en mellorar a eficiencia das operacións de lectura e escritura, tanto de bytes como de caracteres.
 +
*PrintStream, PrintWriter
 +
Clases para simplificar a lectura e escritura de texto.
 +
 +
PipedInputStream, PipedOutputStream, PipedReader, PipedWriter
 +
Clases que se usan por parellas para mover datos dentro dunha aplicación. Os datos escritos nun PipedOutputStream ou PipedWriter lense usando o correspondente PipedInputStream ou PipedReader.
 +
 +
FileInputStream, FileOutputStream, FileReader, FileWriter
 +
Implementacións de InputStream, OutputStream, Reader e Writer que len e escriben usando ficheiros do sistema de ficheiros local.

Revisión del 11:10 10 feb 2017

Nos paquetes da API de Java java.io e java.nio, almacénase un amplo conxunto de ferramentas para a manipulación da entrada e saída de datos do programa. Entre estas ferramentas estarán as que permiten tanto a manipulación do contido de ficheiros como as que facilitan as comunicacións nunha rede. Comezaremos coas clases incluídas en java.io, que seran subclases de InputStream, OutputStream, Reader e Writer. Utilizaremos tamén a clase File ara manipular información sobre ficheiros e faremos compresión e serialización de datos. No caso do paquete java.nio, a "n" que aparece no seu nome fai referencia a que foi introducido posteriormente a java.io e por tanto era "new I/O" no momento da súa introdución. == Fluxos (Streams) O tratamento fundamental de datos de E/S baséase na idea da manipulación de fluxos, é dicir, unha secuencia de datos na que se pode colocar nova información (escribir) ou consumir a información que contén (lectura). Cando nos nosos programas utilicemos clases de java.io para, por exemplo, ler ficheiros, comunicar procesos nunha rede ou facer saídas a un terminal, estaremos utilizando diferentes tipos de fluxos. No caso de java.nio, aparece o concepto de canal que terá as mesmas utilidades pero que levará asociado un buffer. Brevemente, este é o listado dos tipos de Stream que poderemos utilizar:

  • InputStream, OutputStream

Clases abstractas que definen as funcionalidades básicas para ler ou escribir unha secuencia de bytes sen estrutura. O resto de fluxos de bytes constrúense a partires delas.

  • Reader, Writer

Clases abstractas que definen as funcionalidades básicas para ler ou escribir unha secuencia de caracteres, con soporte para a codificación Unicode. O resto de fluxos de caracteres constrúense a partires delas.

  • InputStreamReader, OutputStreamWriter

Clases que fan de ponte entre fluxos de bytes e de caracteres facendo as conversións precisas segundo a codificación utilizada. Por exemplo, coa codificación Unicode, un carácter non se corresponde cun byte.

  • DataInputStream, DataOutputStream

Clases especializadas en permitir ler e escribir tipos de datos multibyte, como os tipos numéricos primitivos ou os obxectos String.

  • ObjectInputStream, ObjectOutputStream

Clases especializadas en permitir serializar obxectos e reconstruílos.

  • BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter

Clases especializadas en mellorar a eficiencia das operacións de lectura e escritura, tanto de bytes como de caracteres.

  • PrintStream, PrintWriter

Clases para simplificar a lectura e escritura de texto.

PipedInputStream, PipedOutputStream, PipedReader, PipedWriter Clases que se usan por parellas para mover datos dentro dunha aplicación. Os datos escritos nun PipedOutputStream ou PipedWriter lense usando o correspondente PipedInputStream ou PipedReader.

FileInputStream, FileOutputStream, FileReader, FileWriter Implementacións de InputStream, OutputStream, Reader e Writer que len e escriben usando ficheiros do sistema de ficheiros local.