1 / 25

Entrada y Salida

Entrada y Salida. Java. 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”);

Download Presentation

Entrada y Salida

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Boolean canWrite(); Boolean canRead() Boolean isFile() Boolean isDirectory() Boolean isAbsolute() Long lastModified() Long length() Boolean mkdir() String[] list() Continuacion…

  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. 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); Abrir un archivo con FileInputStream o con FileReader

  11. 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. Lectura de un FileInputStream o de un FileReader

  12. 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 continuacion read()

  13. 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. Escritura un archivo con FileOutputStream y FileWriter

  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. 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() Lectura con DataInputStream

  18. 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 ); Escritura con DataOutputStream

  19. 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(). continua

  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. 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 Pero tambien cuentan con metodos para moverse dentro de un archivo

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

  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();         }     }

More Related