java中不能用System.in构造一个DataInputStream的流么?谁能帮忙看下,谢谢。有图

就是想把我输入再输出一遍,但这么做貌似不行。后来我试了别的方法:BufferedReaderbr=newBufferedReader(newInputStreamRead... 就是想把我输入再输出一遍,但这么做貌似不行。
后来我试了别的方法:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
之后用br.readLine();就可以读出来。谁能帮我解释下图中代码哪里错了?
展开
 我来答
勿隐寺
2013-01-26 · 超过13用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:45.2万
展开全部
  DataInputStream dis = new DataInputStream(System.in);
  byte[] buf = new byte[1024];
  int len = 0;
  while((len=dis.read(buf))!=-1) {
  
  String s = new String(buf,0,len);
  System.out.print(s);
}

上面这段代码,尽量别输入中文,而且没有停止的方法,要你按那个红色的正方形按钮才能停止,所以很不方便。如果用BufferedReader类来包装的话,就不会出现这些问题。

一般你用键盘输入都要用字符流来包装,因为可能会输入中文。而你用的DataInputStream不仅是个字节流,而且还是用来操作java里的基本数据类型的,根本不适合用在这里。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式