STREAMS DE SALIDA ( FILEOUTPUTSTREAM – ESCRITURA) en JAVA
Los Streams de salida es el modo de trabajo que tiene java de escribir (crear ficheros). Este proceso de escritura es realizado a partir de dos clases, FileOutputStream y DataOutputStream que se encuentran en el paquete java.io. Todas los métodos de escritura se complementan con otras clases que no son las anteriormente nombradas.
La clase FileOutputStream es útil para la escritura de ficheros de texto. Lo primero que debemos hacer es, abrir el fichero (creando objeto), luego escribiremos y por último lo cerraremos. Un inconveniente que tiene es que solo se pueden escribir datos de tipo byte.
APERTURA: Existen dos modos para abrir un fichero.
FileOutputStream objeto;
objeto=new FileOutputStream(“ruta y nombre.ext”);
File obj_file=new File(“ruta y nombre.ext”);
FileOutputStream objeto;
objeto=new FileOutputStream(obj_file);
ESCRITURA: Una vez abierto se escriben bytes utilizando alguna de las 3 posibilidades del método write.
objeto.write(int);
objeto.write(byte[]);
objeto.write(byte[],inicio,long_en_bytes);
Escribe un byte.
Escribe un array de bytes.
Escribe n bytes desde inicio hasta la longitud dada.
CERRAR: Se puede utilizar el método close o dejar que el sistema lo cierre cuando se destruya el objeto del fichero.
objeto.close();
La clase DataOutputStream puede escribir datos binarios, es decir, cualquier tipo. Es muy similar a la utilizada anteriormente. Necesitaremos un objeto de la clase FileOutputStream para enlazarlo como un Stream de salida y con un objeto de la clase BufferedOutputStream para crear el buffer de datos.
APERTURA:
DataOutputStream obj_data;
BufferOutputStream obj_buffer;
FileOutputStream obj_file;
obj_file=new FileOutputStream(“ruta y nombre.ext”);
obj_buffer=new BufferedOutputStream(obj_file);
obj_data=new DataOutputStream(obj_buffer);
ESCRITURA:
obj_data.writetipo(var_tipo);
tipo |
DESCRIPCIÓN |
writeBoolean | variable de tipo booleano |
writeByte | variable de tipo byte |
writeShort | variable de tipo short |
writeChar | variable de tipo char |
writeInt | variable de tipo int |
writeFloat | variable de tipo float |
writeDouble | variable de tipo double |
writeBytes | array de bytes |
writeChars | array de chars |
CERRAR:
obj_file.close();
obj_buffer.close();
obj_data.close();
EJEMPLO: Métodos para abrir un fichero. Utilizamos cuadros de dialogo para elegir el fichero.
import java.io.*;
import java.awt.*;
import java.applet.*;
public class abre extends Applet{
TextArea editor=new TextArea(«»,50,70);
Button abre=new Button(«Abrir»);
Frame c1=new Frame();
public void init(){
setLayout(new BorderLayout());
add(«Center»,editor);
add(«South»,abre);
editor.reshape(10,10,300,200);
abre.reshape(40,240,50,50);
}
public boolean action (Event evt, Object obj){
String ruta=»»;
if(evt.target instanceof Button)
{
FileDialog opn;
opn=new FileDialog(c1,»Abrir»,FileDialog.LOAD);
opn.show();
ruta=opn.getDirectory()+opn.getFile();
abre_fichero(ruta); //llamamos a nuestra función
return true;
}
return false;
}
public void abre_fichero(String ruta){
String linea=null;
try{
FileInputStream canal;
DataInputStream fichero;
canal=new FileInputStream(ruta);
fichero=new DataInputStream(canal);
editor.setText(«»);
do{
linea=fichero.readLine();
editor.appendText(linea+»\n»);
}while(linea!=null);
canal.close();
fichero.close();
}
catch(IOException e){}
}
} //cierra la clase
0 comentarios