我正在尝试在我的电脑和电脑之间共享文件Android设备通过wifi。奇怪的是文本和音频文件正在完美传输,而图像和视频文件无法呈现。 这是代码的主要部分:
发件人:
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());
}
注意:即使接收方的图像/视频文件大小与发送的文件相同,仍然无法呈现。
先谢谢!! :)
答案 0 :(得分:1)
您不能假设将byte []转换为String然后将其转换回byte []将为您提供原始字节[]。
例如,以下不输出原始字节数组:
byte[] buffer = {-127};
for (byte b : new String(buffer).getBytes()) { System.out.print(" " + b); }
要解决您的问题,请将数据操作(追加和删除数据)作为字节进行操作,不要与String进行转换。