Olá…sei que já tem vários tópicos referentes a isso, mas tentei fazer uma boa quantidade de exemplos e ainda não funcionou…
Descrição…
Presciso enviar arquivos, não necessáriamente de texto, pode ser um jar, um .mp3, qualquer tipo… de um servidor para um cliente…
então criei duas classes, uma no cliente e outra no servidor
Método de envio:
private void enviar(File f) throws IOException {
if (f.isFile()) {
BufferedInputStream is = new BufferedInputStream(new FileInputStream(f));
byte[] buff = new byte[1024];
int len = 0;
while ((len = is.read(buff)) != -1) {
output.write(buff);
output.flush();
}
}
}
e no cliente o método de recebimento
private void receberArquivo() throws FileNotFoundException, IOException{
File file = new File(getNomeArquivo());
byte[] buff = new byte[1024];
BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(file));
Long size = getTamanhoArquivo();
while (size > 0) {
int len = input.read(buff);
if (len == -1) {
break;
}
os.write(buff, 0, len);
size -= len;
}
os.close();
}
o código até que funciona, mas não transmite e nem recebe todo o arquivo, por exemplo…quero enviar um arquivo de uns 5 MB e recebe só uns 150 k… não sei o que está havendo…se alguém já passou por isso…me ajude
Obrigado
[Editado]
ah…antes que eu esqueça…
o input e output são variáveis do tipo ObjectInputStream e ObjectOutputStream inicializados através do socket.getInputStream e getOutputStream…