RandomAccessFile Abrir un archivo bit a bit PARCHESITO

Iniciado por cyberserver, 10 Mayo 2010, 23:52 PM

0 Miembros y 1 Visitante están viendo este tema.

cyberserver

Hola amigo, si ustedes son de los que han usado anteriormente la clase RandomAccessFile para poder abrir un archivo en forma de Bytes(8bits) y an intentado con la misma clase abrir el archivo pero en bits osea en 0 y 1 sin poder hacerlo aki esta el codiguin!!!!

import java.io.*;
import javax.swing.*;

public class Prueba1 {

   public static void main (String[] args)throws Exception {
    procedimiento objeto=new procedimiento();
    objeto.AbrirArchivo("byte.txt");
}
   
   
}
class procedimiento{
RandomAccessFile archivo;
String cerosunos="";
String cerosunosaux;
public void AbrirArchivo(String Archivo)throws Exception{
archivo=new RandomAccessFile(Archivo,"rw");
archivo.seek(0);
cerosunosaux=Integer.toBinaryString(archivo.readByte());

//Conpletar los 8 bits.
if(cerosunosaux.length()<8){
for(int x=cerosunosaux.length();x<8;x++){
cerosunos=cerosunos+"0";
}
cerosunos=cerosunos+cerosunosaux;
}

JOptionPane.showMessageDialog(null,"El contenido del archivo es " + cerosunos);
}
}


Pues espero que les aya servido :P! suerte a todos
NOTA: lo unico que modificarian seria archivo.seek(0); para poder ver el byte que necesiten






cyberserver

#1
Si a alguien le interesa  :huh: :huh: :huh: :huh: aki esta la nueva modificacion, te permite ver de una rango de Bytes

.- El Byte en el que se esta trabajando
.- La forma Binaria
.- La forma Decimal
.- La forma Ascii

import java.io.*;
import javax.swing.*;

public class Prueba1 {

   public static void main (String[] args)throws Exception {
    procedimiento objeto=new procedimiento();
    objeto.AbrirArchivo("perro.bmp");
}
}
class procedimiento{
RandomAccessFile archivo;
String cerosunos;
String cerosunosaux;
Byte Decimal;

public void AbrirArchivo(String Archivo)throws Exception{
archivo=new RandomAccessFile(Archivo,"rw");
for(int w=54;w<=60;w++){
cerosunos="";
cerosunosaux="";

archivo.seek(w);
Decimal=archivo.readByte();
cerosunosaux=Integer.toBinaryString(Decimal);

int i = Decimal;
  String aChar = new Character((char)i).toString();
 
//Conpletar los 8 bits.
if(cerosunosaux.length()<8){
for(int x=cerosunosaux.length();x<8;x++){
cerosunos=cerosunos+"0";
}
cerosunos=cerosunos+cerosunosaux;
}
JOptionPane.showMessageDialog(null,"El contenido del archivo en el byte: " + w + "\n binario: " + cerosunos + " \n Decimal: "+ Decimal + " \n Ascii: " + aChar);
}

}
}



Nota: lo unico que cambias son los limites w del for!!!

Con esto podras ver el contenido de cada byte de una imagen o documento...