输入流,输出内容带空格。

在Java中,我们把能够读取一个字节序列的对象称作一个输入流;而我们把能够写一个字节序列的对象称作一个输出流。它们分别由抽象类InputStream和OutputStream类表示。

https://baike.baidu.com/item/%E8%BE%93%E5%85%A5%E6%B5%81/12712916

问题说明:

图中选中的是输出流输出的内容带有空格。

问题造成:

因为字节数组的长度设置为1024个字节,一个汉字占用3个字节,所以输出的内容并没有沾满1024个字节,剩下的内容会由空格代替。

解决建议:

1.修改字节长度。这个方法我不建议。

2.设置输出字节数量。

解决办法:

1.修改字节长度

byte b[] = new byte[21];
// 需要根据内容多少来设置输出长度,不推荐。
下方的拖动条消失,说明空格已经全部去除。

2.设置输出字节数量

int len = in.read(b);
System.out.println("文件内容是:" + new String(b, 0, len));
下方的拖动条消失,说明空格已经全部去除。

read方法是有返回值的,返回类型是整数,返回内容是字节数量。

new String(要解码为字符的字节,要解码的第一个字节的索引,要解码的字节数)