martes, 6 de noviembre de 2012

Programación - Lectura de ficheros en Java

Seguimos con el tema de la entrada/salida, esta vez con lectura de ficheros en Java.
Este pequeño trozo de código se encarga de leer un fichero que contenga números separados por uno o varios caracteres: 1,2,3 ó 4 5 6 ó 7@8@9 ó 1asd4asd7asd9 y genera un array con los números leidos

El código es el que sigue:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;


 public static  int[] leer(String a, String d){
 BufferedReader br = null;
 int[] vector = {};
 String[] partes = null;
 try {

  String sCurrentLine;
  
  String delimiter = d;
  br = new BufferedReader(new FileReader(a));

  while ((sCurrentLine = br.readLine()) != null) {
   partes = sCurrentLine.split(delimiter);
   int[] aux2 = new int[vector.length];
   System.arraycopy(vector, 0, aux2, 0, vector.length);
   vector = new int[partes.length+aux2.length];
   int [] aux = new int[partes.length];
   for(int i=0; i< partes.length; i++){
    aux[i] = Integer.parseInt(partes[i]);
   }
   System.arraycopy(aux2, 0, vector, 0, aux2.length);
   System.arraycopy(aux, 0, vector, aux2.length, aux.length);
  }

 } catch (IOException e) {
  e.printStackTrace();
 } finally {
  try {
   if (br != null)br.close();
  } catch (IOException ex) {
   ex.printStackTrace();
  }
 } 
 return vector; 
}
 
 
Para que funcione le debeis de pasar la ruta al fichero que vais a leer, y entre comillas la cadeda delimitadora ";", "asd", etc.
Edit:Se ha modificado el código para que lea el fichero entero y no solo la última línea en caso de tener varias líneas con números.

No hay comentarios:

Publicar un comentario