Mostrando entradas con la etiqueta BufferedInputStream. Mostrar todas las entradas
Mostrando entradas con la etiqueta BufferedInputStream. Mostrar todas las entradas

miércoles, 20 de marzo de 2013

Comparar dos Archivos Binarios byte por byte

Diseñar una aplicacion que solicite desde teclado el nombre de dos archivo binarios y cuyo contenidos deberá comparar byte por byte.
import java.io.DataInputStream;
import java.io.IOException;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.util.Scanner;

public class Compara_BytexByte
{
    public static void main(String[] args) throws IOException
    {
        Scanner teclado = new Scanner(System.in);
        System.out.print("Escribe el primer archivo binario a comparar: ");
        String bin1 = teclado.next();
        System.out.print("Escribe el segundo archivo binario a comparar: ");
        String bin2 = teclado.next();

        try 
        {
            DataInputStream x = new DataInputStream(new BufferedInputStream(new FileInputStream(bin1)));
            DataInputStream y = new DataInputStream(new BufferedInputStream(new FileInputStream(bin2)));            
            
            int dato1=0, dato2=0;
            int cont1=0, cont2=0;            
            while(dato1 !=-1 || dato2 != -1)
            {
              dato1=x.read();
              dato2=y.read();              
              if(dato1!=-1)
              {  
                  cont1++;  
              }  
              if(dato2!=-1)
              {
                  cont2++;
              }
            }
            System.out.println("\nEl primer archivo binario tiene "+cont1+" Bytes");  
            System.out.println("El segundo archivo binario tiene "+cont2+" Bytes");
            if(cont1 == cont2)
            {
                System.out.println("Los archivos comparardos son iguales");
            }
            else
            {
                System.out.println("Los archivos comparados son diferentes");
            }
            x.close();
            y.close();
        }catch(IOException e)
        {
            System.out.println("Error:");
        }
    }
}
Output:
Escribe el primer archivo binario a comparar: databin.bin
Escribe el segundo archivo binario a comparar: datos.bin

El primer archivo binario tiene 120 Bytes
El segundo archivo binario tiene 118 Bytes
Los archivos comparados son diferentes

lunes, 18 de marzo de 2013

Desde un Archivo Binario de objetos obtener un Archivo de Texto

Desde un archivo Binario de objetos obtener un archivo de texto con el siguiente formato: nombre\n edad\n sexo\n y exhibir el archivo de texto.
import java.io.ObjectInputStream;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.DataOutputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.EOFException;
import java.io.Serializable;

class Persona implements Serializable
{
 String nomb;
 int ed;
 char sexo;
}

public class Bin_Text {

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        
        ObjectInputStream lee=null;
        
        String nomb="";
        int ed=0;
        char sexo =0;
        
        try
        {
         lee=new ObjectInputStream(new BufferedInputStream(new FileInputStream("persona.bin")));
         FileOutputStream e = new FileOutputStream("NuevoArchivo.txt");
         DataOutputStream escribe = new DataOutputStream(e);

         for (int i=0;i < 5 ; i++)
         {
             nomb=lee.readUTF();
             ed=lee.readInt();
             sexo=lee.readChar();
             
             escribe.writeUTF(nomb);
             escribe.writeInt(ed);
             escribe.writeChar(sexo);
             
         }escribe.close();
        }
        finally
        {
            System.out.println("Archivo creado...");
            lee.close();
        }
        
        System.out.println("Leyendo archivo creado...");
        System.out.println("\n   Nombre\t\tEdad\tSexo");
        DataInputStream lee2 =null;
        try
        {
            lee2 =new DataInputStream(new BufferedInputStream(new FileInputStream("NuevoArchivo.txt")));
            while(true)
            {
                nomb=lee2.readUTF();
                ed=lee2.readInt();
                sexo=lee2.readChar();
                System.out.printf("%s\t%d\t%c\n",nomb,ed,sexo);
            }
        }
        catch (EOFException e)
        {
            System.out.println("\nSe alcanzo el fin del archivo...");
        }
        finally
        {
            lee2.close();
        }
    }
}
Output:
Archivo creado...
Leyendo archivo creado...

     Nombre                      Edad Sexo
0  Jose Manuel Sanchez  23    M
1  Jose Manuel Sanchez 23  M
2  Jose Manuel Sanchez 23  M
3  Jose Manuel Sanchez 23  M
4  Jose Manuel Sanchez 23  M

Se alcanzo el fin del archivo...

Entradas populares