Java——RandomAccessFile,修改密码操作

package day01;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Arrays;
import java.util.Scanner;

/**
 * 修改密码操作
 * @author adminitartor
 *
 */
public class Demo4 {
	public static void main(String[] args) throws IOException {
		Scanner scanner = new Scanner(System.in);
		System.out.println("修改密码");
		System.out.println("请输入用户名:");
		String username = scanner.nextLine();
		
		System.out.println("请输入旧密码");
		String password = scanner.nextLine();
		
		System.out.println("请输入新密码");
		String newpassword = scanner.nextLine();
		RandomAccessFile raf 
				= new RandomAccessFile(
							"user.dat","rw"	
						);
		boolean check = false;//表示密码是否修改成功
		for(int i=0;i<raf.length()/100;i++) {
			//上来就要将指针移动到刚开始的位置
			raf.seek(i*100);
			
			//读取用户名
			byte[] data = new byte[32];
			raf.read(data);
			String name = new String(data,"UTF-8").trim();
			if(name.equals(username)) {
				//找到此人然后匹配密码
				raf.read(data);
				String pwd = new String(data,"UTF-8").trim();
				if(pwd.equals(password)) {
					//修改新密码
					//1 先将指针移动到该条记录密码的位置
					raf.seek(i*100+32);
					//raf.seek(raf.getFilePointer()-32);
					//2 重新将新密码写入文件
					byte[] arr = newpassword.getBytes("UTF-8");
					arr = Arrays.copyOf(arr, 32);
					raf.write(arr);
					System.out.println("密码修改成功");
					check = true;
				}
				break;
			}
		}
		if(!check) {
			System.out.println("密码修改失败,用户名或密码不正确");
		}
		
		raf.close();
	}
}


在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43442290/article/details/88671476
今日推荐