关于BufferedReader的疑惑

kobewhj 2009-11-13 12:36:09
1.BufferedReader br=new BufferedReader(new InputStreamReader(System.in));为什么调用它的函数要在后面加throws IOExpection或者把调用它的函数写在try里面再catch异常,BufferedReader为什么会有异常呢。
2.我可以一次只读取里面的一个字符吗,如果可以,要怎么做,可以读取一个字符并且定位到下一字符,比如我输入abc字符串,然后可以在不先把它作为字符串读出来的情况下直接读出字符a,并且下次再读字符就读字符b。(如果先读出字符串我就知道方法了,只是觉得要先读出字符串似乎多了一个步骤)
3.有什么办法判断我输入的是不是某个字母(不按回车),比如我在不按回车的情况下,想输入'y'就进入下一环节,否则一直输入,要怎么做到。

先谢谢各位大虾了。在下很多不懂,所以也不知道java是否有上述2和3的功能,若有描述不清楚的地方请指出来。
...全文
95 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shengyan19 2009-11-13
  • 打赏
  • 举报
回复
1.因为 所有对流的操作 都是带异常的 .这个可以看 java的api那里面很详细
2.先弄个数组 ,它有个read方法 把它读到数组里面 。在在数组里面 取第一个。
3.你先要理解 io的机制。所有的解析流都是一次读入 放入缓存中,在取。如果你想要给你取的 强制限定长度,只有规定你接收数组的长度。并定义 mark标记,下次读的时候 在reaset(这个可能写错了) 继续读。
4. 回车代表你一次输入的结束。 自己想想能行吗?
秦π 2009-11-13
  • 打赏
  • 举报
回复
可以不用buffer缓冲 监控system.in流就是了

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧