由于JDK1.0提供的System.in太难使用
1.BufferReader:JDK1.1
此类中的String readLine() throws IOException
方法可以直接读取一行数据,以回车作为换行符。(也是这个类最大的缺点)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Ex {
public static void main(String[] args) throws IOException {
InputStream in = System.in;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
System.out.println("输入内容");
String str = bufferedReader.readLine();//直接可以读取一行数据,不需要再写什么字节数组了。
System.out.println("输出内容:" + str);
}
}
2.Scanner: JDK1.5
Scanner是一个专门进行输入流处理的程序类,利用这个类可以方便处理各种数据类型,同时也可以直接结合正则表达式进行各项处理,在这个类中主要关注以下方法:
- 判断是否有指定类型数据: public boolean hasNextXxx()
- 取得指定类型的数据: public 数据类型 nextXxx()
- 定义分隔符:public Scanner useDelimiter(Pattern pattern)
- 构造方法:public Scanner(InputStream source)
例:
import java.util.Scanner;
public class Ex2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
/*
if (scanner.hasNext()){
String str = scanner.next();
System.out.println("输入内容为:" + str);
}
*/
/*
System.out.println("请输入年龄");
if (scanner.hasNextInt()){
int age = scanner.nextInt();
System.out.println("年龄为:" + age);
}else{
System.out.println("输入非法");
}
*/
System.out.println("输入出生日期");
if (scanner.hasNext("\\d{4}-\\d{2}-\\d{2}")){
String str = scanner.next();
System.out.println("出生年月为:" + str);
}else{
System.out.println("输入格式不正确,格式应为:1970-01-01");
}
}
}
输出到文件中
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class Ex3 {
public static void main(String[] args) throws FileNotFoundException {
File file = new File(File.separator + "F" + File.separator + "Users" +
File.separator + "fwb" + File.separator + "Desktop" + File.separator + "ScannerTest.txt");
PrintStream printStream = new PrintStream(new FileOutputStream(file));
printStream.println("姓名:ZZZ");
printStream.println(20);
printStream.close();
}
}
从文件中读取:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Scanner;
public class Ex4 {
public static void main(String[] args) throws FileNotFoundException {
File file = new File(File.separator + "F" + File.separator + "Users" +
File.separator + "fwb" + File.separator + "Desktop" + File.separator + "ScannerTest.txt");
Scanner scanner = new Scanner(new FileInputStream(file));
while (scanner.hasNext()){
String str = scanner.next();
System.out.println(str);
}
}
}