Professional Documents
Culture Documents
}while(leyendocadena.compareTo("INICIAR")!=0);
escribir.close();
}
DataInputStream lecturaA=null;
DataInputStream lecturaB=null;
DataOutputStream E=null;
try
{
lecturaA = new DataInputStream( new FileInputStream("Au
xN1"));
lecturaB = new DataInputStream( new FileInputStream("Au
xN2"));
E = new DataOutputStream( new FileOutputStream("Archivo"
,false));
/*SI EL ARCHIVO LECTURAA ES IGUAL A 0
* MIENTRAS EL ARCHIVO LECTURAA QUE CONTIENE LOS DATOS DE AUXN1
SEA DIFERENTE DE 0 SE LEE EL DATO DE TIPO ENTERO Y SE ASIGNA A
DATO Y DESPUES SE ESCRIBE EN EL ARCHIVO E */
if(lecturaB.available()==0)
while(lecturaA.available()!=0)
{
dato=lecturaA.readInt();
E.writeInt(dato);
}
else
{
dato=lecturaA.readInt();
auxa=dato;
dato2=lecturaB.readInt();
auxb=dato2;
//SE COMPARARN LOS DATOS ASIGNADOS A AUXA Y AUXB
//SI AUXA ES MENOR QUE AUXB SE ESCRIBE EL VALOR DE AUXA
EN E Y LE
//ASIGNA Y=1 QUE ES UNA BANDERA
if(auxa<auxb)
{
E.writeInt(auxa);
y=1;
}
//SI AUXA ES MAYOR QUE AUXB SE ESCRIBE EL VALOR DE AUXB EN E
Y SE
// LE ASIGNA Y=2 QUE ES UNA BANDERA
else
{
E.writeInt(auxb);
y=2;
}
//AQUI SE HACE LA COMPARACION DE A Y B
do
{
if(y==1)
{
if(lecturaA.available()==0&&lecturaB.available()==0)
{
if(auxa<auxb)
{
E.writeInt(auxb);
break;
}
else
{
E.writeInt(auxb);
E.writeInt(auxa);
break;
}
}
if(lecturaA.available()==0)
{
E.writeInt(auxb);
//AQUI LEE EL DATO DE LECTURAB Y LO ASIGNA A DATO2
//Y SE ESCRIBE EN EL ARCHIVO E
while(lecturaB.available()!=0)
{
dato2=lecturaB.readInt();
E.writeInt(dato2);
f=true;
}
}
if(lecturaA.available()!=0)
{
dato=lecturaA.readInt();
auxa=dato;
if(auxa<auxb)
{
E.writeInt(auxa);
y=1;
}
else
{
E.writeInt(auxb);
y=2;
}
}
}
if(y==2)
{
if(lecturaA.available()==0&&lecturaB.available()==0)
{
if(auxa<auxb)
{
E.writeInt(auxb);
break;
}
else
{
E.writeInt(auxa);
break;
}
}
if(lecturaB.available()==0)
{
E.writeInt(auxa);
//AQUI SE LEE EL DATO EN LECTURAA SE LE ASIGNA A DATO
//Y S ESCRIBE EN EL ARCHIVO E
while(lecturaA.available()!=0)
{
dato=lecturaA.readInt();
E.writeInt(dato);
f=true;
}
}
if(lecturaB.available()!=0)
{
dato2=lecturaB.readInt();
auxb=dato2;
if(auxa<auxb)
{
E.writeInt(auxa);
y=1;
}
else
{
E.writeInt(auxb);
y=2;
}
}
}
}while(!f);
}
lecturaA.close();
lecturaB.close();
E.close();
}
catch(IOException e)
{
System.out.println("ERROR AL FUSIONAR EL ARCHIVO");
}
}
/*ESTE METODO MANDA LLAMAR A TODOS LOS METODOS QUE SON LEER(),PARTICIONA
R()
*MOSTRAR(),FUSION() MIENTRAS AUXN2 SEA DIFERENTE DE 0*/
public static void fusionar()
{
DataInputStream Aux2=null;
try
{
Aux2 = new DataInputStream( new FileInputStream("AuxN2")
);
Leer();
System.out.println(" ");
particionar();
int cont=1;
while(Aux2.available()!=0)
{
System.out.println("\nPARTICION\t"+cont);
particionar();
mostrar();
fusion();
cont++;
}
}
catch(IOException e)
{
System.out.println("ERROR EN FLUJO DE ARCHIVO");
}
}
}