вот маленький код. Этот класс работает на двух компьютерах, одна сторона отправляет файл (send()), а другой получает его (read()). Я знаю, что send() работает, потому что, когда я запускаю школьное решение (его назначение), он может скачать файл у меня, но по какой-то причине, когда я пытаюсь загрузить файл, создается (конструктором), но чтение ничего не пишет в файл.не удается передать файл через сокет, java
public class SendFile extends BasicMessage implements Message{
private File _file;
public SendFile(CommandEnum caption){
super(caption);
}
public SendFile(String file){
super(CommandEnum.FILE);
_file = new File(FMDataManager.instance().getSharedDirectory(),file);
}
public void send (DataOutputStream out) throws IOException{
out.writeUTF(_caption.toString());
out.writeLong(_file.length());
FileInputStream fis = new FileInputStream(_file);
BufferedInputStream bis = new BufferedInputStream(fis);
for (int i=0; i<_file.length(); i++)
out.write(bis.read());
out.writeUTF(CommandEnum.END.toString());
}
public void read(DataInputStream in) throws IOException{
FileOutputStream fos = new FileOutputStream(_file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
in.readUTF();
long size = in.readLong();
for (int i=0; i<size; i++)
bos.write(in.read());
System.out.println(in.readUTF());
}
}
любые идеи? спасибо
как вы можете видеть, я получаю потоки данных в качестве аргументов в этом методе. этот поток позже закрыт в том же классе, который был создан, вы все еще думаете, что это может быть проблемой? – yotamoo
Вы были правы, спасибо – yotamoo