Transformar arquivo em array de bytes

Olá pessoal!

To com um probleminha…

Preciso ler um arquivo da minha máquina local e mandar por um socket para o servidor.

Descobri que seria mais fácil se eu lesse o arquivo da minha máquina e tranformasse em um array de bytes para transportá-lo dentro de um VO serializado.

Alguem sabe me dizer como que eu leio um arquivo qualquer, indiferente de extenção, e transformo ele em um array de bytes?

 public byte[] getBytes(File file) {
     int             len     = (int)file.length();  
      byte[]          sendBuf = new byte[len];
      FileInputStream inFile  = null;
      try {
         inFile = new FileInputStream(file);         
         inFile.read(sendBuf, 0, len);  
         
      } catch (FileNotFoundException fnfex) {
            
      } catch (IOException ioex) {

      }
 return sendBuf;
}
1 curtida

Show de bola!!!

Consigo enviar o objeto que tem esse array de bytes pela rede sem problemas!

Mas agora eu preciso grava-lo no servidor… como que eu faço para retransformá-lo??

Muito grato!

File sourceFile = new File("Caminho");
FileOutputStream file = new FileOutputStream(sourceFile);
         BufferedOutputStream output = new BufferedOutputStream(file); 
         output.flush();
         output.write(bytesArray, 0, bytesArray.length); 
         output.flush();
         output.close();

sourceFile agora é seu arquivo na máquina remota :wink:

File arq = new File("c:/arquivo.txt"); ByteArrayOutputStream out = new ByteArrayOutputStream(); FileInputStream in = new FileInputStream(arq); int b; while((b = in.read())>-1){ out.write(b); } out.close(); in.close(); byte[] array = out.toByteArray();