elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Guardar bytes de un archivo en una matriz
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Guardar bytes de un archivo en una matriz  (Leído 5,609 veces)
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Guardar bytes de un archivo en una matriz
« en: 29 Noviembre 2009, 12:27 pm »

Hola a todos, estoy intentando guardar un archivo (todos sus bytes) en una matriz, pero no lo consigo, mirad mi codigo:

Código
  1. package archivos;
  2.  
  3. import java.io.FileNotFoundException;
  4. import java.io.IOException;
  5. import java.io.RandomAccessFile;
  6. import java.util.logging.Level;
  7. import java.util.logging.Logger;
  8.  
  9. /**
  10.  *
  11.  * @author debci
  12.  */
  13. public class ManipulacionArchivos {
  14. public static void main(String args[]) {
  15.        try {
  16.            // Se abre el fichero para lectura y escritura.
  17.            RandomAccessFile fichero = new RandomAccessFile("/home/debci/test.archivo", "rw");
  18. // Nos situamos en el byte 100 del fichero.
  19.            int longitud = (int) fichero.length();
  20.            fichero.seek(100);
  21.            byte matrizBytes[] = new byte[longitud];
  22.            for(int i = 0; i< fichero.length(); i++) {
  23.  
  24.           matrizBytes[i] = fichero.readByte();
  25.           System.out.println(matrizBytes);
  26.            }
  27.  
Pero no lo consigo, quizas será porque el metodo
Código
  1. readByte();
no es aumentativo, no lo se, solo se que no lo consigo.

Un saludo a todos


En línea

egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: Guardar bytes de un archivo en una matriz
« Respuesta #1 en: 29 Noviembre 2009, 18:37 pm »

xD
Consideraste los 100 bytes que te coriste??
tu for deberia quedar asi
Código
  1. for(int i = 0; i< fichero.length()-100; i++) {
  2.     matrizBytes[i] = fichero.readByte();
  3. }
  4. System.out.println(matrizBytes);

Saludos


En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Guardar bytes de un archivo en una matriz
« Respuesta #2 en: 29 Noviembre 2009, 19:08 pm »

xD
Consideraste los 100 bytes que te coriste??
tu for deberia quedar asi
Código
  1. for(int i = 0; i< fichero.length()-100; i++) {
  2.     matrizBytes[i] = fichero.readByte();
  3. }
  4. System.out.println(matrizBytes);

Saludos
Hola todos, y gracias por tu aclaracion, pero ahora tengo otra duda, es la siguiente:
Porque si leo el array entero, es decir que lo recorro con un bucle, porque al devolver los valores de todos los bytes (en concreto de 5 bytes) me devuelven todos 0?
MI segunda duda ,e s el porque si escribo en una posicion de la memoria, en mi caso asi:

Código
  1. matrizBytes[4] = 3;
  2.            fichero.writeByte(matrizBytes[4]);
  3.            fichero.seek(1);
  4.            fichero.writeByte(2);
  5.            fichero.seek(3);
  6.            fichero.writeByte(5);
  7.            fichero.seek(2);
  8.            fichero.writeByte(2);
  9.  
porque obtengo como resultado lo siguiente:



Como podria re-escribir todos los bytes del archivo a partir de una matriz, es decir yo la lleno con bytes personalizados, como puedo escribirlos todos 1 por 1?
Seria con un bucle e ir aumentando el seek?

Saludos
En línea

egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: Guardar bytes de un archivo en una matriz
« Respuesta #3 en: 29 Noviembre 2009, 20:36 pm »

El seek cambia el puntero interno, del archivo si vas escribiendo byte por byte no es  necesario colocarlo explicitamente ya que tu escribes un byte y se mueve automaticamente al siguiente.
Ahora existen funciones para escribir y leer matrices completas de byte te suguiero que las averigues.
No entendi tu problema pero debes recordar que el byte 2 y el caracter '2' son distintos, si quieres ver binario te recomiendo un programa para ello y no un editor de texto.
Saludos

Revisa: http://java.sun.com/javase/6/docs/api/java/io/RandomAccessFile.html
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Guardar bytes de un archivo en una matriz
« Respuesta #4 en: 29 Noviembre 2009, 20:45 pm »

No entendi tu problema pero debes recordar que el byte 2 y el caracter '2' son distintos, si quieres ver binario te recomiendo un programa para ello y no un editor de texto.
Saludos
Si quiero ver binario? Mmmm te refieres a abrir el programa y ver los bytes en forma de 1 y 0?
Pero la cosa esta en como?

Saludos
En línea

Caballero Maldito

Desconectado Desconectado

Mensajes: 63


Caballero-maldito U.U


Ver Perfil
Re: Guardar bytes de un archivo en una matriz
« Respuesta #5 en: 1 Diciembre 2009, 23:10 pm »

bytes?? no te refieres a bits? aunque obviamente uno es conjunto del otro jaja
podrias utilizar Scanner y amm el nextInt, bueno tambien hay para leer todo tipo de dato, byte, char, short, double, hasta bigInteger o big decimal o.O

y por lo que veo tu matriz es unidimensional, ocea un arreglo jeje, podrias aclarar si vas a trabajar con una matriz(2 dimensiones) o seguimos con el arreglo? jeje
y tambien lo del tipo de dato, si compartieras algunas lineas de tu archivo seria mejor  :xD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines