程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> string-關於java輸出流ByteArrayOutputStream的toString()方法

string-關於java輸出流ByteArrayOutputStream的toString()方法

編輯:編程解疑
關於java輸出流ByteArrayOutputStream的toString()方法

import java.io.*;

public class ByteArrayOutputStreamtoString {
public static void main(String[] args){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
try{
dos.writeBoolean(true);
dos.writeDouble(2.345456);
dos.writeFloat(1.234354f);
String s = baos.toString();
System.out.println(s);
}catch(IOException e){
e.printStackTrace();
}
}
}


他的輸出為什麼是“@�~oq��?��P”這樣的亂碼?,還有toString()這個方法的用法是什麼?是用來干什麼的呢?

最佳回答:


不是這樣用的 , ByteArrayOutputStream 存的是字節數組, toString 只是簡單的把裡面的 byte數組轉成了字符串。程序可不知道你要怎麼解析 byte。
出現亂碼很正常。 下面給你正確的用法

import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;

/**
 * Created by chenhong on 16/3/10.
 */
public class Main {

    public static void main(String[] args){

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baos);
        try{


            dos.writeBoolean(true);  //boolean 1位
            dos.writeInt(2); // int 32位   4字節
            dos.writeFloat(1.234354f); // float 32位   32字節

            byte[] bArray = baos.toByteArray();
            System.out.println("共"+bArray.length+"字節");
            for (int i = 0; i < bArray.length; ++i){
                    System.out.println(bArray[i]+" ");
            }



        }catch(IOException e){
            e.printStackTrace();
        }
    }
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved