1.IO流概念
io流分为输出流和输入流两中,针对内存来说,把内存数据存储到磁盘、光盘等存储设备中,便是输出流,反之,从磁盘、光盘等存储设备把数据拿到内存中,便是输入流。像我们通过键盘打字到txt文件中,这个过程其实是输入输出。原因是我们打字到计算机的内存中,然后计算机再存储到磁盘中。理解了输入和出流,才能掌握IO流,其实也不难理解,把握(针对内存来说)即可。
2.登录注册选择什么流来实现
写一个登录注册无非是输入流与输出流,考虑的应该是用那种流,比如(缓冲字符流,对象流等都可以实现)我就采用缓冲流吧! BufferedReaer(Reader in) 和 BufferedReaer(Reader in,int sz)(sz可以初始化类自带的缓冲池,其默认大小为8kb) 是BufferedReaer的构造方法。BufferedWriter同上不过第一个参数为Writer out。用这两个类来分别实现输入和输出。
3.代码
public static void main(String []args) throws IOException {
Scanner scr = new Scanner(System.in);
String name;
String secret;
String str;
int count = 0;
FileReader file = new FileReader("写一个txt文件的路径");//为BufferedReader(Reader in)的构造提供参数
FileWriter file1 = new FileWriter("写一个txt文件的路径", true);//为BufferedReader(Writer in)的构造提供参数,并且FileWriter第二个参数可以续写
BufferedReader bufferedReader = new BufferedReader(file);
BufferedWriter bufferedWriter = new BufferedWriter(file1);
System.out.println("0-退出 1-注册 2-登录");
System.out.println("请输入一个数>> ");
int n = scr.nextInt();
while (true) {
switch (n) {
case 0:
System.out.println("退出!!!");
return;
case 1:
//注册,用BufferedWriter的write方法
System.out.println("注册界面!!!");
System.out.println("请输入注册姓名>> ");
name = scr.next();
System.out.println("请输入密码>> ");
secret = scr.next();
str = name + "," + secret + "\n";
bufferedWriter.write(str);
bufferedWriter.flush();
System.out.println("注册成功!!!");
break;
case 2:
//登录,用BufferedReader的readLine方法
System.out.println("登录界面!!!");
System.out.println("请输入用户名>> ");
name = scr.next();
System.out.println("请输入用户密码>> ");
secret = scr.next();
str = bufferedReader.readLine();//读取一行
while (str != null) {
String[] string = str.split(",");//根据符号,把str分割成多个子字符串
if (string[0].equals(name) && string[1].equals(secret)) {
System.out.println("登录成功!!!");
count = 1;
}
str = bufferedReader.readLine();//往下读取一行
}
if (count == 0) {
System.out.println("登录失败!!!");//判断登录是否成功
}
break;
default:
System.out.println("输入其它数字!!!");
break;
}
}
}