Я пытаюсь получить файл, который клиент отправляет с использованием DataInputStream, и записать его в файл.
(Клиент отправляет файл, используя метод записи DataInputStream (byte [], len, off))
Вот как я пытаюсь это сделать, но он не получает полные данные.
InputStream in = s.getInputStream(); //s is Socket that is connected.
BufferedInputStream bis = new BufferedInputStream(in);
DataInputStream din = new DataInputStream(bis);
FileOutputStream fos = new FileOutputStream(directory+"/"+filename);
byte b = din.readByte();
while(b != -1){
fos.write(b);
b = din.readByte();
}
Я знаю, что реализация выше не может быть элегантной.
но я действительно новичок в java, поэтому, пожалуйста, предупредите меня о плохом стиле
(Я действительно ценю, если вы порекомендуете лучшую, если вы знаете)
файл результата - всего 4 КБ, тогда как он должен быть 401 КБ
Как мне исправить этот код, чтобы мой код работал?
Большое спасибо.