标准输入输出流
-
System.in 和 System.out 分别代表了系统标准的输入和输出设备
System.in 的类型是 InputStream
Systema.out 的类型是 PrintStream,是 OutputStream 的子类 FilterOutputStream 的子类
-
默认的输入设备是键盘,输出设备是显示器
练习1
- 把控制台输入的内容写到指定的TXT文件中,当接收到字符串over,就结束程序的运行
public class Test {
//练习:把控制台输入的内容写到指定的TXT文件中,当接收到字符串over,就结束程序的运行
public static void main(String[] args) {
Test.test();
}
public static void test() {
try {
//创建一个字符输入流
InputStreamReader in = new InputStreamReader(System.in);
//将字符输入流放入缓冲流中
BufferedReader br = new BufferedReader(in);
BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\JAVA\\Java 基础入门\\IO 流\\test\\t5.txt"));
// 临时存放数据的字符串
String str = "";
while ((str = br.readLine()) != null) {
// 当 str 为 over 时,退出循环
if (str.equals("over")) {
break;
}
// 读取每一行数据写入文件中
bw.write(str + "\n");
}
bw.flush();
bw.close();
br.close();
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
练习2
- 在一个TXT文件中,写一组用户名和密码,通过控制台输入用户名和密码,与TXT文件中的用户名密码做对比,如果一样就在打印登录成功,如果不一样打印用户名密码错误
public class Test01 {
// 在一个TXT文件中,写一组用户名和密码,
// 通过控制台输入用户名和密码,与TXT文件中的用户名密码做对比,
// 如果一样就在打印登录成功,如果不一样打印用户名密码错误
public static void main(String[] args) {
try {
Test01.test();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void test() throws Exception{
InputStreamReader ir = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(ir);
BufferedReader br1 = new BufferedReader(new FileReader("D:\\JAVA\\Java 基础入门\\IO 流\\test\\test\\test.txt"));
String str = "";
System.out.print("请输入用户名和密码:");
while ((str = br.readLine()) != null) {
if (str.equals(br1.readLine())) {
System.out.println("登录成功");
break;
}else {
System.out.println("用户名密码错误");
break;
}
}
br1.close();
br.close();
ir.close();
}
}
- test.txt 中的内容
123 abc