Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/11/2010, 10:37
gabo461
 
Fecha de Ingreso: enero-2009
Mensajes: 31
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: controlar errores al momento de leer un archivo antes de cargar dato

mira estas dos clases, espero te sirva:



import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author juan.rodriguez
*/
public class Stream {

public static void main(String[] args) {
//Llamar una funcion para ver ejemplo
propertiesFile();
}

/**
* filtra por la extencion del archivo,
* instanciamos Filter
*/
public static void filter(){
File file = new File("c:\\prueba.txt");
String fileName = file.getName();
Filter filter = new Filter();

if(filter.accept(file, fileName))
System.out.println("Extension iguales");
else
System.out.println("Extension diferentes");
}

/**
* lista los archivos del directorio actual
*/
public static void listFileOfDirectoryCurrent(){
File file=new File("c:\\.");
String[] listaArchivos=file.list();
for(int i=0; i<listaArchivos.length; i++){
System.out.println("Archivo: "+listaArchivos[i]);
}
}

/**
* Propiedades del archivo
*/
public static void propertiesFile(){
File file = new File("c:\\prueba.txt");

if(file.exists()){
System.out.println("Nombre del archivo "+file.getName());
System.out.println("Camino "+file.getPath());
System.out.println("Camino absoluto "+file.getAbsolutePath());
System.out.println("Se puede escribir "+file.canRead());
System.out.println("Se puede leer "+file.canWrite());
System.out.println("Tamaño "+file.length()+" KB");
}
}

/**
* Leer un archivo desde una ubicacion y copiar el archivo en una ubicacion diferente
*/
public static void readAndWriteFile(){

FileReader entrada=null;
FileWriter salida=null;

try {
entrada=new FileReader("c:\\prueba.txt");
salida=new FileWriter("c:\\copiaPrueba.txt");
int c;
while((c=entrada.read())!=-1){
salida.write(c);
}
}catch (IOException ex) {
System.out.println(ex);
}finally{
//cerrar los flujos de datos
if(entrada!=null){
try{
entrada.close();
}catch(IOException ex){}
}
if(salida!=null){
try{
salida.close();
}catch(IOException ex){}
}
System.out.println("el bloque finally siempre se ejecuta");
}
}

/**
*Escribir un archivo en una ubicacion.
*/
public static void writerFile() throws IOException{
DataOutputStream salida = null;

double[] precios = {1350, 400, 890, 6200, 8730};
int[] unidades = {5, 7, 12, 8, 30};
String[] descripciones = {"paquetes de papel", "lápices", "bolígrafos", "carteras", "mesas"};
salida = new DataOutputStream(new FileOutputStream("c:\\pedido.txt"));
for (int i = 0; i < precios.length; i++) {
salida.writeChars(descripciones[i]);
salida.writeChar('\n');
salida.writeInt(unidades[i]);
salida.writeChar('\t');
salida.writeDouble(precios[i]);
}
salida.close();
}
}





import java.io.File;
import java.io.FilenameFilter;
import java.util.LinkedList;
import java.util.List;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author juan.rodriguez
*/
public class Filter implements FilenameFilter{
private final List<String> listExtension;

Filter(){
listExtension = new LinkedList<String>();
listExtension.add(".txt");
}

public boolean accept(File dirFile, String nameFile){
boolean bandera = false;
for(String file:this.getListExtension()){
bandera = nameFile.endsWith(file);
}

return bandera;
}

/**
* @return the listExtension
*/
public List<String> getListExtension() {
return listExtension;
}
}