改进输出功能不足的问题时,java中提供有打印流,随后BuffeedReader进一步完善,最后来到扫描流,完善InputStream所有功能不足的问题,并且简单好用。
- Scanner字符串输出:
package cn.dujiang.demo;
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in) ; //准备接受键盘输入数据
System.out.println("请输入内容:");
if (scan.hasNext()) {//现在输入内容
System.out.println("输入内容:"+scan.next());
}
scan.close();
}
}
- Scanner数据输入:
package cn.dujiang.demo;
import java.util.Scanner;
/**
* @author Dujiang
*
*/
public class TestDemo {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in) ; //准备接受键盘输入数据
System.out.println("请输入金额:");
if (scan.hasNextDouble()) {//现在输入的是一个小数
double price = scan.nextDouble() ;//省略了转型
System.out.println("输入内容:"+price);
}else{
System.out.println("err,输入不正确");
}
scan.close();
}
}
- Scanner正则输入:
package cn.dujiang.demo;
import java.util.Scanner;
/**
* 除了以下支持的各种类型以外,也可以进行正则验证
*
* @author Dujiang
*
*/
public class TestDemo {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in); // 准备接受键盘输入数据
System.out.println("请输入年-月-日:");
if (scan.hasNext("\\d{4}-\\d{2}-\\d{2}")) {// 现在输入的是一个小数
String date = scan.next("\\d{4}-\\d{2}-\\d{2}");// 省略了转型
System.out.println("输入内容:" + date);
} else {
System.out.println("err,输入不正确");
}
scan.close();
}
}
- Scanner数据读取:
package cn.dujiang.demo;
import java.io.File;
import java.io.FileInputStream;
import java.util.Scanner;
/**
*
*
* @author Dujiang
*
*/
public class TestDemo {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(new FileInputStream(new File("F:"+File.separator+"test.text")));
scan.useDelimiter("\n");//设置读取的分隔符
while (scan.hasNext()) {
System.out.println(scan.next());
}
scan.close();
}
}