hyetpang 2016-03-15 14:08 采纳率: 39.4%
浏览 6239
已采纳

关于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()这个方法的用法是什么?是用来干什么的呢?

  • 写回答

3条回答 默认 最新

  • 藏红 2016-03-16 02:21
    关注

    不是这样用的 , 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();
            }
        }
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 5037端口被adb自己占了
  • ¥15 Error in check.length("fill") : 'gpar'成分'fill'的长度不能为零
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误