Я пытаюсь обмениваться файлами между моим компьютером & устройством Android по Wi-Fi. Странная вещь - текстовые и звуковые файлы прекрасно переносятся, а изображения и видеофайлы не отображаются. Вот основная часть коды:Ошибка отправки ТОЛЬКО изображения/видеофайла
Отправитель:
BufferedOutputStream writer = new BufferedOutputStream(client.getOutputStream());
InputStream stream = new FileInputStream(file);
while ((read = stream.read(buffer)) != -1)
writer.write(buffer, 0, read);
Приемник:
BufferedInputStream input = new BufferedInputStream(client.getInputStream());
OutputStream outputStream = new FileOutputStream(file, true);
while (!store.complete) {
read = input.read(buffer, 0 , MAX_SIZE_OF_BUFFER);
String data = new String(buffer);
// Need to do some data manipulation (like removing a string which i appended
// while sending)
outputStream.write(data.getBytes());
}
Примечания: Даже размер изображения/видео файла в приемнике равный отправляемому файлу, но он не может отобразить.
Спасибо заранее! :)
Спасибо !! :) Было бы очень полезно, если бы вы могли объяснить мне, что это происходит. –
Я не могу найти краткое объяснение, но в основном это потому, что Java использует UTF-16, который является кодировкой переменной длины. Возможно, последовательность байтов в моем примере недопустима UTF-16, и поэтому базовые байты изменяются во время преобразования из байта [] в String. – Loedolff