Diferencia entre revisiones de «Entrada/Saída»
(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.