一般的我们使用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