繁体   English   中英

PrintWriter和byte []问题

[英]PrintWriter and byte[] problem

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

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

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

outputStream.write(byte[] b);

PrintWriter用于文本数据,而不是二进制数据。

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

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

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

尝试这个

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

它对我有用..当我用的时候

PrintWriter out=new PrintWriter(System.out);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM