已有101人关注
Java入门经典第11.1实例
发表在Java图书答疑 2015-08-02
是否精华
版块置顶:
public class InputStreamGetStr {
 public static void main(String[] args){
 InputStream is =System.in;
 try{
 byte[] bs=new byte[50];
 int i=is.read(bs); //i是用来干嘛的?
System.out.println("输出:"+new String(bs).trim());
 System.out.println(i);
 is.close();
 }catch(IOException e){
 e.printStackTrace();
 }
 }
 }
测试:
 (1)name
输出:name
 6
(2)input
输出:input
 7
代码如上,
 (1)我在书上看到对read()方法的介绍是:从当前数据流中读取一个字节,为什么这里可以一直把我所输入的全部内容都输出?
 (2)我这边谢了一句System.out.println(i);输出如上,第一次我输入name。我个人感觉应该输出5,为何输出6?
分享到:
精彩评论 1
菜鸟级精英
学分:0 LV1
TA的每日心情
开心
2020-03-23 21:05:48
2015-08-03
沙发
我改了一下代码,让你能更好的理解,运行一下下面的代码,参照注释你就知道为什么name处处的是6而不是5了

public class InputStreamGetStr {
public static void main(String[] args) {
InputStream is = System.in;
try {
[font color=#0000FF]byte[] bs = new byte[10];//将缓冲区改成10[/font]
int i = is.read(bs); // 返回读入缓冲区的总字节数
[font color=#0000FF] for(byte a:bs){//使用for-each循环输出缓冲区中写入的字节
System.out.println(a);
}[/font]
System.out.println("输出:"+new String(bs).trim());
System.out.println("缓冲区中写入的字节数:"+i);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照