Java - Problemas con un listado en java

   
Vista:

Problemas con un listado en java

Publicado por Oscar Moreno (2 intervenciones) el 01/03/2008 14:52:47
Hola a todos!

De antemano agradezco a todos aquellos que lean este mensaje y más profundamente aquellos que puedan responder.

Mi problema es el siguiente, el programa que coloco en la parte inferior hace un filtrado de archivos en este caso, devuelve todos los archivos que empiezan por "b0", y lo que he intentado sin éxito es que una vez filtrado el listado, por la clase findFIles guardemos el contenido de esos archivos en nuevos, es decir si el programa me muestra los archivos b0123.123, b0456.123, b0789,,,,,, el siguiente pasó sería extraer el contenido de cada uno de ellos y ponerlo en otros archivos por ejemplo el b0123.123 en el MTL0123.dat, el b0456 en MTL0456.el123, el b0789 en MTL0789.dat,,,,,,

Realmente estoy desesperado, llevo dias intentando y toda la ayuda que me puedan proporcionar estaré muy, agradecido y espero algún día poder hacer algo por ustdes.

Un saludo

[CODE]import java.io.*;

public class dia
{
public static void findFiles(File file, FileFilter filter, PrintStream output) throws IOException
{
//Recoge todos los archivos del directorio que cumplan con la condición en la clase main
if (file.isDirectory())
{
File[] list = file.listFiles();
for (int i = list.length; --i>=0;)
{
findFiles(list[i], filter, output);
}

}
else
{
if (filter.accept(file))
{
output.println(file);
try
{
// Se abre el fichero original para lectura
FileInputStream fileInput = new FileInputStream(file.toString());
BufferedInputStream bufferedInput = new BufferedInputStream(fileInput);

String str = fileInput.getName();
// Se abre el fichero donde se hará la copia
FileOutputStream fileOutput = new FileOutputStream ("MTL" + str.substring(5,10) + ".DAT");
BufferedOutputStream bufferedOutput = new BufferedOutputStream(fileOutput);

// Bucle para leer de un fichero y escribir en el otro.
byte [] array = new byte[10000];
int leidos = bufferedInput.read(array);
while (leidos > 0)
{
bufferedOutput.write(array,0,leidos);
leidos=bufferedInput.read(array);
}

// Cierre de los archivo
bufferedInput.close();
bufferedOutput.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}

}
}

public static void main(String[] args)
{

class NameFilter implements FileFilter
{
private String mask;
NameFilter(String mask)
{
this.mask = mask;
}

public boolean accept(File file)
{

return (file.getName().indexOf(mask)!=-1)?true:false;
}
}

File pathFile = new File(".");

String filterString = "b0";

//Hacemos un contador de tiempo que repite la función cada 10 segundos
try
{
while (true)
{
FileFilter filter = new NameFilter(filterString);
findFiles(pathFile, filter, System.out);

try
{
Thread.sleep(10000);

}
catch (InterruptedException e) {}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}[/CODE]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder