PrintWriter和byte []问题

时间:2011-08-01 12:33:30

标签: java

byte[] data = (byte[])opBinding.execute();
PrintWriter out = new PrintWriter(outputStream);    
out.println(data);
out.flush();
out.close(); 

但不是文字我得到@ 84654。如何将byte []添加到PrintWriter?我需要byte []而不是strinf因为我有čćžšđ

的问题

5 个答案:

答案 0 :(得分:11)

您可以直接使用outputstream来写入字节。

outputStream.write(byte[] b);

答案 1 :(得分:4)

PrintWriter适用于 text 数据,而非二进制数据。

听起来你很可能正在将byte[]转换为String,然后将该字符串写出来 - 假设你写的PrintWriter使用了支持的编码你感兴趣的人物。

您还需要知道原始文本数据已编码为byte[]的编码,以便成功转换为开头的文本。

答案 2 :(得分:2)

问题是,在将结果返回到data.toString()语句之前,您的代码会调用(隐式)println

答案 3 :(得分:1)

试试这个

byte[] data = (byte[])opBinding.execute();
PrintWriter out = new PrintWriter(outputStream);    
out.println(new String(data));
out.flush();
out.close(); 

答案 4 :(得分:0)

当我使用

时,它对我有用
PrintWriter out=new PrintWriter(System.out);

它还使用toString()方法将字节数据转换为字符串..因此,这可能是编码问题的原因