程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> io輸出流-ByteArrayOutputStream輸出亂碼問題,新人不懂啊,求教!

io輸出流-ByteArrayOutputStream輸出亂碼問題,新人不懂啊,求教!

編輯:編程解疑
ByteArrayOutputStream輸出亂碼問題,新人不懂啊,求教!

碰到一個亂碼問題,不知道哪裡問題,想請教下,謝謝。
PS:一個輸出流的大小寫轉換問題,代碼如下:
package io;
import java.io.*;
public class Trans {
public static void main(String[] args) throws Exception{
String s="abcdef";
//System.out.println(s);
byte[] a=s.getBytes();
ByteArrayInputStream in=new ByteArrayInputStream(a);
ByteArrayOutputStream out=new ByteArrayOutputStream();
new Trans().chang(in,out);
byte[] r=out.toByteArray();
System.out.println(r);
//System.out.println(out.toByteArray());
}
private void chang(InputStream in,OutputStream out) {
int c=0;
try{
while((c=in.read())!=-1)
{
int s=(int)Character.toUpperCase((char)c);
out.write(s);
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
這是輸出:[B@6bbc4459 預計中是得到ABCDE的結果,但是結果卻是這樣的。

最佳回答:


    因為你是直接打印這個系列數組,所以輸出的是地址,而且這個輸出不是亂碼是地址,你應該用這個字節數組創建字符串輸出才對,修正main最後一行輸出System. out. println(new String(r));
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved