Java IO学习笔记(九):BufferedReader和Scanner

来源:互联网 发布:手机望远镜软件 推荐 编辑:程序博客网 时间:2024/05/22 03:47

如果想要接收任意长度的数据,而且避免乱码产生,就可以使用bufferedreader类

public class bufferedreader extends reader

因为输入的数据有可能出现中文,所以,此处使用字符流完成。bufferedreader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中。

system.in本身表示的是inputstream(字节流),现在要求接收的是一个字符流,需要将字节流变成字符流才可以,所以要用inputstreamreader

1 import java.io.bufferedreader;

2 import java.io.ioexception;

3 import java.io.inputstreamreader;

4

5 public class test33 {

6public static void main(string[] args) throws ioexception {

7bufferedreader reader=new bufferedreader(new inputstreamreader(system.in));

8string str=reader.readline();

9system.out.println(str);

10}

11 }

在jdk1.5之后java提供了专门的输入数据类,此类可以完成bufferedreader类的功能,也可以方便的对输入数据进行验证,此类存放在java.util包中

使用scanner接收键盘的输入数据:

1 import java.util.scanner;

2

3 public class test34 {

4public static void main(string[] args) {

5scanner s=new scanner(system.in);

6string str=s.next();

7system.out.println(str);

8}

9 }

比直接使用bufferedreader更加方便,但是这个程序是有问题的,如果输入的字符串中存在空格,那么就会截止,如果我们要接收空格的下,将分隔符变成“\n”。

1 import java.util.scanner;

2

3 public class test34 {

4public static void main(string[] args) {

5scanner s=new scanner(system.in);

6s.usedelimiter("\n");//使用分隔符

7string str=s.next();

8system.out.println(str);

9}

10 }


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击