标签:
本回主要内容是输入,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的特性,更加有用。
标签:
原文地址:http://www.cnblogs.com/lcchuguo/p/4555338.html