一般的我们使用byte接收读取到的数据,若数据没有达到byte定义的大小时,我们直接将byte转换为String则会出现乱码的情况,在这种情况下应该基于read的返回值来转换byte,否则将产生乱码的情况,下面是一个简单的示例:
package com.javaio.myinputstream;
public class MyConsole {
public static void main(String argv[]) throws Exception {
System.out.println("please input something:");
byte[] b = new byte[1024];
int len = System.in.read(b);
System.out.println("you input is:" + new String(b, 0, len, "UTF-8"));
}
}
输出结果:
please input something:
asdfasdf
you input is:asdfasdf