如果想要接收任意长度的数据,而且避免乱码产生,就可以使用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^)/