byte[] data = (byte[])opBinding.execute();
PrintWriter out = new PrintWriter(outputStream);
out.println(data);
out.flush();
out.close();
但不是文字我得到@ 84654。如何将byte []添加到PrintWriter?我需要byte []而不是strinf因为我有čćžšđ
的问题答案 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()
方法将字节数据转换为字符串..因此,这可能是编码问题的原因