2014-10-01 43 views
0

从输入流我正在读取图像数据并将其转换为字符串。从字符串直接通过以下类型写入图像。无法使用java bufferwriter恢复完整映像?

final BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
final char[] cbuf = new char[1024]; 
final int length = reader.read(cbuf); 

String packet=new String(cbuf,0,length); 
BufferedWriter out = null ; 
FileWriter fstream ; 
File file = new File(fileName); 
fstream = new FileWriter(file); 
out.write(packet); 

请指导我这个问题。 我没有得到完整的图像。 enter image description here

+0

你是什么意思_convert to string_? – 2014-10-01 05:01:54

+1

图像是二进制数据,因此它的一部分将无法转换为字符串。尝试使用我也尝试过的字节数组 – 2014-10-01 05:04:39

+0

。 @ScaryWombat – RameshJaga 2014-10-01 05:06:34

回答

0
final BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 

Decodes input使用默认编码可能破坏的数据。

out.write(packet); 

使用默认编码潜在破坏数据编码字符。

阅读有关您使用的API的文档。只有在绝对需要时才使用默认或未知编码进行转换。

Read/convert an InputStream to a String

+0

错误的方法。他正在使用字符串(char []值,int偏移量,int计数) – 2014-10-01 05:14:51

+0

@ScaryWombat,已修复。 – Basilevs 2014-10-01 05:18:38

+0

@Basilevs我读到图像的结尾,并一起写。但仍然像上面的形象。验证的校验和也。不知道.. – RameshJaga 2014-10-01 05:45:59