La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Entrada y Salida Java. Clase File La clase File proporciona mucha informacion relacionada con archivos y con la obtencion de informacion basica sobre.

Presentaciones similares


Presentación del tema: "Entrada y Salida Java. Clase File La clase File proporciona mucha informacion relacionada con archivos y con la obtencion de informacion basica sobre."— Transcripción de la presentación:

1 Entrada y Salida Java

2 Clase File La clase File proporciona mucha informacion relacionada con archivos y con la obtencion de informacion basica sobre esos archivos. Constructores File miArchivo; miArchivo=new File(“pooi104/prueba1”); O miArchivo=new File(“pooi104”,”prueba1”); O File miDirectorio=new File(“pooi104”); miArchivo=new File(miDirectorio,”prueba1”);

3 La clase File contiene los siguiente metodos: String getName() String getPath() String getAbsolutePath() String getParent() Boolean renameTo(File nuevonombre) Boolean exists()

4 Continuacion… Boolean canWrite(); Boolean canRead() Boolean isFile() Boolean isDirectory() Boolean isAbsolute() Long lastModified() Long length() Boolean mkdir() String[] list()

5 Streams de entrada Hay muchas clases dedicadas a la obtención de entrada desde distintas fuentes. Hay dos que son las clases padre de todas las demás, que son: la clase Reader (utilizada para entrada de caracteres) y la clase ImputStream (utilizada para estrada de bytes). Jerarquia de clases de entrada de caracteres

6 Continua Jerarquia de clases de entrada de bytes.

7 Jerarquia de clases de salida de caracteres

8 Jerarquia de clases de salida de bytes

9 Objetos FileInputStream y FileReader Los objetos FileInputStream representan archivos binarios accedidos en orden secuencial, byte a byte, y los objetos FileReader representan archivos de texto accedidos en orden secuencial carácter a carácter. Con FileInputStream, se puede elegir acceder a un byte, varios bytes o al fichero completo, y también podemos hacer lo mismo con los caracteres de FileReader.

10 Abrir un archivo con FileInputStream o con FileReader FileInputStream miFicheroSt; miFicheroSt = new FileInputStream( "/etc/kk" ); De otra manera File miFichero; FileInputStream miFicheroSt; miFichero = new File( "/etc/kk" ); miFicheroSt = new FileInputStream(miFichero); FileReader miFicheroRd; miFicheroRd = new FileReader( "/etc/kk" ); De otra manera File miFicherot; FileReader miFicheroRd; miFicherot = new File( "/etc/kk" ); miFicheroRd = new FileReader(miFicherot);

11 Lectura de un FileInputStream o de un FileReader int read(); int read( byte b[] ); int read( char b[] ); Lee un byte o un carácter y devuelve -1 al final del stream. Llena todo el array, si es posible. Devuelve el número de bytes o caracteres leídos o -1 si se alcanzó el final del stream.

12 continuacion read() int read( byte b[],int offset,int longitud ); int read( char b[],int offset,int longitud); Lee longitud bytes o caracteres en b comenzando por b[offset]. Devuelve el número de bytes o caracteres leídos o -1 si se alcanzó el final del stream

13 Escritura un archivo con FileOutputStream y FileWriter void write( int b ); void write( byte b[] ); void write( char b[] ); void write( String str ); void write( byte b[],int offset,int longitud ); void write( char b[],int offset,int longitud ); void write( String str,int offset,int longitud ); Escribe un byte o un carácter. Escribe todo el array o el string, si es posible. Escribe longitud bytes o caracteres de b o del string comenzando por la posición offset.

14 Para cerrar los archivos Cuando se termina de trabajar con un archivo, hay dos formas de cerrarlo: explícitamente, o implícitamente cuando se recicla el objeto (el garbage collector se encarga de ello). Para cerrarlo explícitamente, se utiliza el método close(): miFicheroSt.close();

15 Objetos DataInputStream Los objetos DataInputStream son streams de datos que pueden leer cualquiera de las variables de tipo nativo, como floats, ints o chars. Se utilizan DataInputStream con archivos binarios, y no tiene equivalente de caracteres.

16 Abrir y cerrar con DataInputStream Para abrir y cerrar un objeto DataInputStream, se utilizan los mismos métodos que para FileInputStream: DataInputStream miDStream; FileInputStream miFStream; // Obtiene un controlador de fichero miFStream = new FileInputStream ("/etc/ejemplo.dbf" ); //Encadena //un fichero de entrada de datos miDStream = new DataInputStream( miFStream ); // Ahora se pueden utilizar los dos streams de entrada para // //acceder al fichero (si se quiere...) miFStream.read( b ); i = miDStream.readInt(); // Cierra el fichero de datos explícitamente //Siempre se cierra //primero el fichero stream de mayor nivel miDStream.close(); miFStream.close();

17 Lectura con DataInputStream Se puede utilizar read() igual que con FileInputStream. Pero tambien cuenta con otros metodos diseniados para leer cada un de lo tipos primitivos de java Cada metodo leera un valor del tipo indicado byte readByte() Int readUnsignedByte() short readShort() int readUnsignedShort() char readChar() int readInt() long readLong() float readFloat() double readDouble()

18 Escritura con DataOutputStream Se puede utilizar write() igual que con FileOutputStream. Pero tambien cuenta con otros metodos diseniados para escribit cada un de lo tipos primitivos de java void writeBoolean( boolean b ); void writeByte( int i ); void writeShort( int i ); void writeChar( int i ); void writeInt( int i ); void writeFloat( float f ); void writeDouble( double d );

19 continua void writeBytes( String s ); void writeChars( string s ); Para escribir cadenas, se tienen dos posibilidades: bytes y caracteres. bytes son var de 8 bits caracteres son de 16 bits. Si las cadenas utilizan caracteres Unicode, debemos escribirlas con writeChars().

20 Archivos de acceso aleatorio Si deseamos saltar de un registro a otro dentro de un archivo java proporciona la clase RandomAccessFile Para crear un objeto RandomAccessFile se puede hacer de las siguientes dos formas: miRAFile = new RandomAccessFile( String nombre,String modo ); miRAFile = new RandomAccessFile( File fichero,String modo ); En donde modo indica si es de lectura ( r ) o de lectura/escritura ( rw)

21 Por ejemplo RandomAccessFile miRAFile; miRAFile = new RandomAccessFile( "/tmp/kk.dbf", "rw" ); Esta clase cuenta con los mismos metodos de lectura y de escritura que DataInputStream y DataOutputStram con read() y write()

22 Pero tambien cuentan con metodos para moverse dentro de un archivo Long getFilePointer Void seek(long pos) Regresa la posicion actual del puntero del archivo. Coloca al puntero del archivo en la posicion indicada; desplazandoce pos bytes desde el comienzo del archivo. La posicion 0 indica el comienzo del archivo

23 continuacion Long length()Regresa la longitud del archivo. La posicion length indica el final del archivo

24 Agregar informacion ejemplo miRAFile = new RandomAccessFile( "/tmp/kk.log","rw" ); //abre el archivo kk.log como de lectura y escritura miRAFile.seek( miRAFile.length() ); //coloca el apuntador del archivo al final de este // Cualquier write() que hagamos a partir de este punto del código // añadirá información al fichero

25 ejemplo import java.io.*; /* Cada vez que ejecutemos este programita, se incorporara una nueva linea al fichero de log que se crea la primera vez que se ejecuta *// class Log { public static void main( String args[] ) throws IOException { RandomAccessFile miRAFile; String s = "Informacion a incorporar\nTutorial de Java\n"; // Abrimos el fichero de acceso aleatorio miRAFile = new RandomAccessFile( "/tmp/java.log","rw" ); // Nos vamos al final del fichero miRAFile.seek( miRAFile.length() ); // Incorporamos la cadena al fichero miRAFile.writeBytes( s ); // Cerramos el fichero miRAFile.close(); } }


Descargar ppt "Entrada y Salida Java. Clase File La clase File proporciona mucha informacion relacionada con archivos y con la obtencion de informacion basica sobre."

Presentaciones similares


Anuncios Google