Saltar al contenido

Convertir archivo a byte array y viceversa

Si encuentras algún detalle que no comprendes puedes dejarlo en la sección de comentarios y haremos todo lo posible de ayudarte lo más rápido posible.

Solución:

De lo contrario, intente esto:

Conversión de archivos a bytes

  import java.io.File;
  import java.io.FileInputStream;
  import java.io.FileNotFoundException;
  import java.io.IOException;


   public class Temp 

        public static void main(String[] args) 

         File file = new File("c:/EventItemBroker.java");

         byte[] b = new byte[(int) file.length()];
         try 
               FileInputStream fileInputStream = new FileInputStream(file);
               fileInputStream.read(b);
               for (int i = 0; i < b.length; i++) 
                           System.out.print((char)b[i]);
                
           catch (FileNotFoundException e) 
                      System.out.println("File Not Found.");
                      e.printStackTrace();
          
          catch (IOException e1) 
                   System.out.println("Error Reading The File.");
                    e1.printStackTrace();
          

       
    

Conversión de bytes a archivo

      public class WriteByteArrayToFile 

         public static void main(String[] args) 

            String strFilePath = "Your path";
            try 
                 FileOutputStream fos = new FileOutputStream(strFilePath);
                 String strContent = "Write File using Java ";

                 fos.write(strContent.getBytes());
                 fos.close();
           
          catch(FileNotFoundException ex)   
                 System.out.println("FileNotFoundException : " + ex);
          
         catch(IOException ioe)  
                 System.out.println("IOException : " + ioe);
          

       
     

Creo que entendiste mal lo que java.io.File clase realmente representa. Es solo una representación del archivo en su sistema, es decir, su nombre, su ruta, etc.

¿Incluso miraste el Javadoc para el java.io.File ¿clase? Echa un vistazo aquí. Si compruebas los campos que tiene o los métodos o argumentos del constructor, inmediatamente obtienes la pista de que todo lo que es es una representación de la URL/ruta.

Oracle proporciona un tutorial bastante extenso en su tutorial Java File I/O, con la última funcionalidad NIO.2 también.

Con NIO.2 puede leerlo en una línea usando java.nio.file.Files.readAllBytes().

De manera similar, puede usar java.nio.file.Files.write() para escribir todos los bytes en su byte array.

ACTUALIZAR

Dado que la pregunta está etiquetada como Android, la forma más convencional es envolver el FileInputStream en un BufferedInputStream y luego envuélvelo en un ByteArrayInputStream. Eso le permitirá leer los contenidos en un byte[]. Del mismo modo, las contrapartes de ellos existen para el OutputStream.

No puedes hacer esto. UN File es solo una forma abstracta de referirse a un archivo en el sistema de archivos. No contiene ninguno de los contenidos del archivo en sí.

Si está tratando de crear un archivo en memoria al que se pueda hacer referencia mediante un File object, tampoco podrá hacer eso, como se explica en este hilo, este hilo y muchos otros lugares ...

Recuerda algo, que te brindamos la opción de esclarecer si diste con la contestación.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *