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
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();