Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: Debci en 29 Noviembre 2009, 19:53 PM

Título: [Aporte] Copiador de bytes en un mismo medio
Publicado por: Debci en 29 Noviembre 2009, 19:53 PM
Hola a todos, hoy investigando y dando uso de la logica, he llegado a la siguiente conclusion sobre manipulacion directa de bytes:
ES como interepretar una hoja de calculo.

Y aqui el codigo fruto de mi mini-investigacion:

Código (java) [Seleccionar]

package archivos;



import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author debci
*/
public class ManipulacionArchivos {
public static void main(String args[]) {
        try {
            // Se abre el fichero para lectura y escritura.
            RandomAccessFile fichero = new RandomAccessFile("/home/debci/Imágenes/love.jpg", "rw");
// Nos situamos en el byte 100 del fichero.
            int longitud = (int) fichero.length();
            fichero.seek(0);
            byte[] matrizBytes = new byte[longitud];
            for (int i = 0; i< fichero.length(); i++) {
                try {
                    fichero.seek(i);
                    matrizBytes[i] = fichero.readByte();

                } catch (IOException ex) {
                    Logger.getLogger(ManipulacionArchivos.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            for (int x=0; x < fichero.length();x++){
            System.out.println(matrizBytes[x]);
            }
            int doblePosicion = (int) (fichero.length() * 2);
            if(fichero.length() == 0){
                fichero.setLength(1);
            }
            fichero.setLength(doblePosicion);
            for(int o = 0; o < 100; o++) {
                //Bucle que copia bytes segun su posicion paralela con intervalos
                //de x2
            for(int y = 0; y < fichero.length() / 2 ; y++){
                if(fichero.length() == 0){
                    fichero.seek(0);
                    fichero.writeByte(98);
                }
                fichero.seek(fichero.length()/2 + y);
                fichero.writeByte(matrizBytes[y]);
                int progreso = (int) fichero.length() / 2;
                System.out.println("Quedan " + (progreso - y) + " bytes por copiar.");

            }

            }
           
        } catch (IOException ex) {
            Logger.getLogger(ManipulacionArchivos.class.getName()).log(Level.SEVERE, null, ex);
        }

}
}


Creo que no esta mal para haberlo sacado usando solamente mi logica y una duda que consulte en el foro.

Vereis que el algoritmo es rebuscado de coj**** pero servira para que muchos entiendan como funciona esto.

Saludos
Título: Re: [Aporte] Copiador de bytes en un mismo medio
Publicado por: egyware en 29 Noviembre 2009, 20:40 PM
Me costo enterderlo un poco, pero lo que hace es duplicarse en si mismo.
Bueno como te dije en el post anterior puedes usar otras funciones y tu codigo se simplificara más
Excelente, sigue experimentando  ;D y aprenderás.
Saludos
Título: Re: [Aporte] Copiador de bytes en un mismo medio
Publicado por: Debci en 29 Noviembre 2009, 20:44 PM
Cita de: egyware en 29 Noviembre 2009, 20:40 PM
Me costo enterderlo un poco, pero lo que hace es duplicarse en si mismo.
Bueno como te dije en el post anterior puedes usar otras funciones y tu codigo se simplificara más
Excelente, sigue experimentando  ;D y aprenderás.
Saludos
Gracias jeje

Saludos