从byte[]到String的精确转换



Array byte[]包含照片的完美逐字节副本,当我尝试将byte[]转换为String并用它写入文件时,它失败了。

我需要转换为字符串,以便稍后通过套接字发送。

我的每个连接的处理程序都有一个Socket(sock)、PrintWriter(out)和BufferedReader(in),然后我将Socket与PrintWriter和BufferedReader关联起来。有了这个,我发送和接收out.println和in.readLine.的字符串

我该怎么解决这个问题?

测试代码:

// getPhoto() returns byte[]
String photo = new String(getPhoto());
// Create file
DataOutputStream os = new DataOutputStream(new FileOutputStream("out1.jpg"));
// This makes imperfect copy of the photo
os.writeBytes(photo);
//This works perfectly basically it copies the image through byte[]
//os.write(getPhoto());
// Close the output stream
os.close();

数组byte[]包含照片的完美逐字节副本,当我尝试将byte[]转换为String并用它写入文件时,它失败了。

是的。这是因为字符串是用于文本的,而照片不是文本。只是不要将其转换为字符串。你也不需要DataOutputStream

OutputStream os = new FileOutputStream("out1.jpg");
try {
    os.write(getPhoto());
} finally {
    os.close();
}
不要将二进制数据加载到字符串中。如果没有tetx,就不要使用字符串

相关内容

  • 没有找到相关文章

最新更新