Hola buenas, estoy liado con un programita en java que debe coger dos ficheros binarios solo con enteros que se mezclen esos ficheros en otro y se ordenen de menor a mayor y se eliminen los repetidos... si alguien me ayuda le estaré muy agradecido ya que llevo tiempo con esto.
Código Java:
Ver originalpublic class ProcesaFicheros {
File fsalida
= null; // Fichero resultante
try {
if (!F1.exists() || !F2.exists())
System.
out.
println("Ficheros no encontrados"); else {
fsalida
= new File("res" + File.
separator + "Resultado.dat");
byte[] buffer= new byte[256];
while (true) {
int n= f1.read(buffer);
if (n < 0)
break;
f3.write(buffer, 0, n);
}
while (true) {
int n= f2.read(buffer);
if (n < 0)
break;
f3.write(buffer, 0, n);
}
// Cierre de flujos
f1.close();
f2.close();
f3.close();
}
System.
out.
println("Error al acceder al fichero Mezcla"); System.
out.
println(e.
getMessage()); }
return fsalida;
}
public static void mostrarFichero
(File f
) { try {
if (!f.exists())
System.
out.
println("Fichero no encontrado: "+ f.
getName() ); else {
// Asociamos el flujo de acceso directo a los datos binarios del
// descriptor (MODO LECTURA)
while (fichero.getFilePointer() < fichero.length()) {
System.
out.
print("Posición: " + fichero.
getFilePointer()); System.
out.
print(" Valor: " + fichero.
readInt() + "\n");
// Actualizo posición del puntero
// Uso del puntero para posicionarnos
fichero.seek(fichero.getFilePointer());
}
fichero.close();
}
System.
out.
println("Error al acceder al fichero"); System.
out.
println(e.
getMessage()); }
}
public static void main
(String[] args
) { File f1
= new File("res" + File.
separator + "Desordenado.dat"); File f2
= new File("res" + File.
separator + "Aleatorio.dat"); File f3
= new File("res" + File.
separator + "Resultado.dat"); File f4
= new File("res" + File.
separator + "DatosRepetidosBorrados.dat");
System.
out.
println("-> FICHERO 1 " + f1.
getAbsolutePath() + ":"); ProcesaFicheros.mostrarFichero(f1);
System.
out.
println("\n-> FICHERO 2 " + f2.
getAbsolutePath() + ":"); System.
out.
println("========="); ProcesaFicheros.mostrarFichero(f2);
/* Fichero de mezcla: 1) File mezclarFichero (File F1, File F2) */
File fsalida
= ProcesaFicheros.
mezclarFichero(f1, f2
);
if (fsalida != null) {
System.
out.
println("\n-> FICHERO MEZCLA RESULTANTE "+ f3.
getAbsolutePath() + ":"); System.
out.
println("========="); ProcesaFicheros.mostrarFichero(f3);
}
System.
out.
println("\n-> FICHERO Datos repetidos borrados y ordenados " + f4.
getAbsolutePath() + ":"); System.
out.
println("========="); ProcesaFicheros.mostrarFichero(f4);
}
}