首页 > 代码库 > Java自学笔记(三)——输入

Java自学笔记(三)——输入

      因为最近学的内容实际操作比较多,所以新的笔记就用代码为主体吧!

      本回主要内容是输入,Java中主要用Scanner类和BufferedReader。总体来说不难,但有些细节可以总结,看代码:

import java.io.*;
import java.util.Scanner;
public class ioTest
{
	public static void main(String[] args)
	throws Exception
	{
 
		//Scanner提供了多种构造器,不同的构造器可以接受文件、输入流、字符串作为数据源
		//用于从中提取解析出基本类型值和字符串值

		//此处System.in代表键盘输入
		Scanner sc = new Scanner(System.in);
		//默认是空格,使用正则表达式
		sc.useDelimiter("\n");
		//hasNextXxx(),xxx不写时,默认为字符串
		//有下一项则返回true,但若没有下一项则并不一定返回false,也有可能被阻塞,此处为阻塞
		while(sc.hasNext())
		{
			//输出输入项
			String next = sc.next();
			if(next.equals("exit")) break;
			System.out.println("键盘输入的内容是"+ next);
		}

		String s = "hello cer";
		Scanner ss = new Scanner(s);
		//此处返回false
		while(ss.hasNext())
		{
			System.out.println("字符串的内容是:"+ss.next());
		}

		//总是读取String对象
		BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
		String line = null;
		while((line = br.readLine()) != null)
		{
			System.out.println("用户键盘输入是:"+ line);
		}
	}
}

输出结果:

$ java ioTest
cer
键盘输入的内容是cer
exit
字符串的内容是:hello
字符串的内容是:cer
test String
用户键盘输入是:test String


正如注释写的一样,对键盘输入的Scanner的hasNext(),在没有下个token的时候,会block的特性,更加实用。