El documento habla sobre los flujos de entrada y salida en Java. Define flujos como mecanismos para realizar operaciones de entrada y salida sobre dispositivos como teclado, pantalla, mouse, impresora y conexión de red. Explica que hay clases abstractas como InputStream y OutputStream que representan flujos de entrada y salida de bytes.
RETO MES DE ABRIL .............................docx
Flujos de Entrada y Salida en Java
1.
2. Definición Clases
•Es el mecanismo utilizado para
realizar operaciones de Entrada
/Salida Object
•De la misma manera se gestiona la
entrada / salida sobre dispositivos
como:
teclado, pantalla, mouse, impresora,
conexión de red
•Hay dispositivos que ya tienen su
flujo predefinido como la pantalla
InputSteam OutputSteam
por ejemplo
•Hay dispositivos que no lo
tienen, como por ejemplo una
impresora
•Las diferentes clases de flujos se
encuentras agrupadas en java.io
Reader Writer
Los flujos son
muy
importantes Random
puesto que …
manejan las AccesFile
E/S de un
programa
3. Definición Clases
•Son clases abstractas que Entrada y
representan el flujo de Salida de
Datos
entrada/salida de bytes.
•Definen la funcionalidad básica
común de todas las clases de flujo de
bytes
•Dentro de las subclases de
InputSteam tenemos:
FileInputStream, ByteArrayInputStre
am, SequenceInputStream, etc. Flujos
•Dentro de las subclases de
OutputStream están:
FileOutputSream, ObjectOutputStrea Gestión de
Excepciones
m, FileOutputStream, etc. Archivos
Investiga las Puedes encontrar
subclases de más información
InputStream y en el libro de
OutputSteam java2 en la página
361 Capítulo 14
4. Definición Clases
•Son clases abstractas que Entrada y
representan el flujo de Salida de
Datos
entrada/salida de bytes.
•Definen la funcionalidad básica
común de todas las clases de flujo de
bytes
•Dentro de las subclases de
InputStream tenemos:
FileInputStream, ByteArrayInputStre
am, SequenceInputStream, etc. Flujos
•Dentro de las subclases de
OutputStream están:
FileOutputSream, ObjectOutputStrea Gestión de
Excepciones
m, FileOutputStream, etc. Archivos
Investiga las Puedes encontrar
subclases de más información
InputStream y en el libro de
OutputSteam java2 en la página
361 Capítulo 14
5. Funciones
•Es el tipo de acceso más simple a un
fichero
•Puede almacenar ficheros de
cualquier magnitud.
•Cuando la información se escribe
registro a registro, estos son
FileOutputStream
colocados uno a continuación del
otro
•Se utiliza con ficheros donde se
coloca la información de principio a
final y se lee de la misma forma
•Los ficheros pueden ser escritos o
leidos utilizando FileOutputStream y
FileInputStream
Los flujos
permiten la
salida y
entrada de
datos FileInputStream
6. Funciones Ejemplo
•Permite escribir bytes en un fichero
•Hereda los métodos de la clase import java.io.*;
OutputStream y trabaja con 3 public class Escribir_fichero {
constructores: public static void main(String[] args) {
1. FileOutputStream(String FileOutputStream fs = null;
nombre); byte[] buffer = new byte [81];
2. FileOutputStream(String int nbytes;
nombre,bool); try
3. FileOutputStream(File fichero); {
• El primero abre un flujo de salida System.out.println("Escriba el texto que desea
hacia un fichero especificado almacenar en el fichero");
• El segundo hace lo mismo, la nbytes = System.in.read(buffer);
única diferencia es que puede fs= new FileOutputStream ("text.txt",true);
continuar agregando información fs.write(buffer , 0 ,nbytes);
una vez que ya exista el fichero System.out.println(nbytes);
• El tercero lo hace a partir de un }
objeto File catch(IOException e)
{
System.out.println("Error");
}
FileOuputStre }
am nos }
permite
escribir bytes
en un fichero
7. Ejemplo
Funciones
import java.io.*;
public class CleerBytes
•Permite leer bytes desde un fichero {
•Proporciona los constructores public static void main (String args [])
siguientes: {
1. FileInputStream(String nombre) FileInputStream fe= null;
2. FileInputStream(File fichero) byte [] buffer = new byte [81];
• El primero abre un flujo de int nbytes;
entrada desde el fichero try
especificado {
• El segundo lo hace a partir de un fe= new FileInputStream("text.txt");
archivo File nbytes = fe.read(buffer,0,81);
String str = new String(buffer,0,nbytes);
System.out.println(str);
}
catch(IOException e)
{
FileInputStrea System.out.println("Error" +e.toString());
m nos permite }
leer bytes de finally
un fichero {
try
{
if(fe != null)
fe.close();
}
catch(IOException e)
{
System.out.println("Error" + e.toString());
}}}}
8. Ejemplo
import java.io.*;
Funciones public class Listado
{
public static void main (String args[])
•Permite: {
1. Obtener el tamaño del archivo System.out.println("Indique nombre de subdirectorio");
2. Obtener el nombre completo, ruta System.out.println("Trayectoria Absoluta, ej: C:libro");
incluida String nomdir = Leer.Leer_String();
3. Cambiar nombre File arch = new File(nomdir);
4. Eliminar nombre if(arch.exists())
5. Saber si es directorio o archivo {
6. Si es un directorio obtener la lista if(arch.isDirectory())
de archivos y directorios que {
contiene System.out.println("Contenido de "+ nomdir);
7. Crear un directorio String arr [] = arch.list();
for(int j=3; j<arr.length;j++)
{
File otro = new File(nomdir + ""+ arr[j]);
if (otro.isDirectory())
La clase File System.out.println(arr[j]+ "<DIR>");
no sirve para else
Leer ni para System.out.println(arr[j]);
escribir en un }
archivo }
else
System.out.println(nomdir + " no es un directorio");
}
else
System.out.println("No existe");
}
}
9. Funciones
Lectura recomendada
•Se puede utilizar la clase File para
referirse al archivo
•La clase File permite trabajar con
tres tipos de constructores:
1. Public File(String ruta completa)
2. Public File(String Ruta, String
•Como lectura recomendada te dejamos
nombre)
los métodos de la clase File
3. Public File (File ruta, String
•Así mismo también las clases de Flujos
nombre)
de caracteres: Reader, FileWriter,
4. El primero crea una archivo a
FileReader
partir de la ruta completa, el
•También leer sobre Flujos de datos
segundo a partir de la ruta y el
nombre, siempre trabajando con
cadenas; y el tercero lo crea a
partir de otro y el nombre del
fichero
La clase File no sirve
para Leer ni para
escribir en un
archivo .
Como tarea, puedes
Sin embargo se
buscar los métodos
puede utilizar como
de la clase File, y leer
alternativa en el
para que sirve cada
constructor
uno de ellos!!!!
10. DataOutputStream Las siguientes líneas de código
definen un filtro que permitirá
Deriva directamente de escribir haciendo uso de
OutputStream DataOutputStream:
Funciones
Permite escribir un flujo de FileOutputStream fos= new
salida subordinado, datos FileOutputStream(datos.dat);
•Sirve para escribir en un fichero de cualquier tipo primitivo DataOutputStream dos= new
datos de tipo primitivo (boolean, byte, DataOutputStream (fos);
double, float, long, int, etc…
•Para esto se utiliza las clases
DataInputStream y DataInputStream Las siguientes líneas de código
DataOutputStream definen un filtro que permitirá
Es derivada directamente
•Un flujo DataInputStream solo puede leer haciendo uso de
de InputStream
ser utilizado si el dato se guardó DataInputStream:
haciendo uso de un flujo Permite leer un flujo de
DataOutputStream entrada subordinado FileInputStream fis= new
FileInputStream(datos.dat);
Solo lee datos ingresados DataInputStream dis= new
por DataOutputStream DataInputStream (fis);
Como tarea, puedes
Estas clases son
buscar los métodos
primordiales ya que
de la clase
su uso es más práctico
DataInputStream y
DataOutputStream,
y realizar ejemplos
11. Funciones Métodos de acceso Aleatorio
•Sirve para escribir en una
determinada posición en un fichero Devuelve en bytes la
•Se hace uso de la clase getFilePointer() posición del archivo
RandomAccesFile
•La clase RandomAccesFile
proporciona dos constructores:
RandomAccesFile(String nombre,
String modo);
•RandomAccesFile(File fichero, String
modo);
•El modo:
RAF
1. r: Significa modo lectura
2. rw: Significa modo escritura
seek(long pl) length()
Coloca en una posición
específica relativa al
principio del archivo Devuelve en bytes la
longitud del archivo
12. Funciones Ejemplo
• Es la operación de enviar una serie import java.io.*;
de objetos a un fichero en disco para import java.lang.*;
hacerlos persistentes recibe el nombre
de Seriación public class Serial
•Leer o recuperar el estado su estado {
del fichero para reconstruirlos en public static void main(String args[]) throws IOException
memoria recibe el nombre de {
deseriación String nombre, apellido;
•Se hará uso de ObjectOutputStream y long telefono;
ObjectInputStream PrintStream i = System.out;
•Se trata de convertir el estado de un try
objeto en una secuencia de bytes, por {
eso son construidos sobre otros flujos File fichero = new File ("Ficherin.txt");
•Los flujos sobre los que se construirá FileOutputStream fos = new FileOutputStream(fichero);
será el FileOutputStream y el ObjectOutputStream oos= new ObjectOutputStream(fos);
FileInputStream Persona p= new Persona(“Carlos”,”Van de Velde”,27133413);
oos.writeObject(p);
}
catch(IOException io)
Para poder hacer uso
{
de una clase
i.println("Se ha cometido un error" +io);
Serializable debes
}
implementar una
}
interfaz Serializable,
}
que viene por default
para identificar que
tipo de clase es