Java - hexadecimal

 
Vista:

hexadecimal

Publicado por boo (3 intervenciones) el 24/10/2007 13:10:35
Tengo un fichero que editándolo en el ultraedit en modo hexadecimal es de la siguiente forma:

00000000h: 30 82 0A 71 06 09 2A 86 48 86 F7 0D 01 07 02 A0 ; 0‚.q..*†H†÷....
00000010h: 82 0A 62 30 82 0A 5E 02 01 01 31 00 30 0B 06 09 ; ‚.b0‚.^...1.0...
00000020h: 2A 86 48 86 F7 0D 01 07 01 A0 82 0A 46 30 82 05 ; *†H†÷.... ‚.F0‚.
00000030h: 65 30 82 04 CE A0 03 02 01 02 02 11 00 D0 1E 47 ; e0‚.Î .......Ð.G

lo que necesito es saber el código o función para ir pasando a otro fichero en modo normal sólo la siguiente información:

30 82 0A 71 06 09 2A 86 48 86 F7 0D 01 07 02 A0
82 0A 62 30 82 0A 5E 02 01 01 31 00 30 0B 06 09

es decir, con sólo los números hexadecimales.
Pero no se como hacerlo. Alguien tiene una idea aproximada de cómo puedo hacer esto en java?

Muchas gracias.
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

RE:hexadecimal

Publicado por angel (537 intervenciones) el 24/10/2007 13:45:14
Puedes hacer un readLine de un BufferedReader, y de cada linea que lees, quedarte solo con el texto que hay entre ":" y ";", para ello puedes usar por ejemplo la funcion "indesOf" de String.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:hexadecimal

Publicado por boo (3 intervenciones) el 24/10/2007 15:11:08
Es que el problema de lo que dices es que lo que va antes de los : es el offset y despues del ; es el ascii. Esto lo incluye ultraedit en su editor hex pero el fichero en sí no tiene eso. No se si me explico pero al hacer eso con la primera línea me sale esto:

q *†H†÷

y yo quiero:

30 82 0A 71 06 09 2A 86 48 86

Espero haberme explicado mejor...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:hexadecimal

Publicado por angel (537 intervenciones) el 24/10/2007 15:40:25
El ultraedit supongo (ahora no lo recuero) transformara lo que lee a hexdecimal o algo asi, quizas debas hacer tu eso tambien cuando lees del fichero y una vez obtengas ese resultado , podrias obtener el texto que quieres.

Suerte y saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:hexadecimal

Publicado por boo (3 intervenciones) el 25/10/2007 09:37:08
Claro, ahí está el problema, que lo de transformar lo que leo (y cómo leerlo) es lo que no sé hacer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:hexadecimal

Publicado por Gilberto (378 intervenciones) el 26/10/2007 02:57:01
Usa FileInputStream y DataInputStream para leer el archivo en forma de bytes,

import java.io.*;

class Test {
public static void main(String[] args) {
byte b;
int count = 0;
try {
FileInputStream fin = new FileInputStream(new File(args[0]));
DataInputStream din = new DataInputStream(fin);
while(true) {
try {
b = din.readByte();
} catch(EOFException e) {
System.out.println("Fin de archivo");
break;
}
if(count%17 == 0)
System.out.println();
else
System.out.print(Integer.toHexString((new Integer(b)).intValue())+" ");
count++;
}
din.close();
}catch(IOException e2) {
e2.printStackTrace();
}
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar