扫描流的作用:键盘数据输入的实现
Scanner定义在 java.util包中,此类是一个工具类。
构造方法:Scanner(InputStream source)
普通方法:
boolean hasNextXxx() —判断是否有指定类型数据存在
Scanner useDelimiter(String pattern) —设置读取的分隔符
boolean hasNext() —判断是否有数据输入
String next() ----取出输入数据,以String形式返回
数据类型 nextXxx() —取出指定数据类型的数据
利用Scanner类实现键盘的输入:
(先使用 hasNextXxx()进行判断,有数据之后再进行输入。
import java.util.Scanner;
public class TestScanner {
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
System.out.println("请输入内容:");
if(scan.hasNext()){
System.out.println("输入内容:" + scan.next());
}
scan.close();
}
}
输入一个数字————double:
import java.util.Scanner;
public class TestScanner2 {
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
System.out.println("请输入成绩:");
if(scan.hasNextDouble()){
double score = scan.nextDouble();
System.out.println("输入内容"+ score);
}else{
System.out.println("输入的不是数字,错误!");
}
scan.close();
}
}
读取文件:
import java.io.File;
import java.io.FileInputStream;
import java.util.Scanner;
public class TestScanner4 {
public static void main(String args[]) throws Exception{
Scanner scan = new Scanner(new FileInputStream(new File("D:"
+ File.separator + "AAA.txt")));
scan.useDelimiter("\n");
while(scan.hasNext()){
System.out.println(scan.next());
}
scan.close();
}
}
关于输入与输出的新操作:PrintStream/PrintWriter可以加强对程序输出数据的操作支持,而Scanner/BufferedReader可以加强程序输入数据的操作支持。只要操作的是文本数据(不是二进制数据),输出时都可以使用打印流,输入时都使用扫描流(或字符缓冲区输入流)。