目录
前言
内容需要有:
姓名,年龄,密码,昵称
一、用户信息写入文件
public static void main(String[] args) throws IOException {
File f=new File("user.txt");
f.createNewFile();
//用户输入数据
Scanner scan=new Scanner(System.in);
RandomAccessFile raf = new RandomAccessFile(f, "rw");
raf.seek(raf.length());
System.out.println("请输入姓名:");
String name=scan.nextLine();
System.out.println("请输入密码:");
String psw=scan.nextLine();
System.out.println("请输入昵称:");
String nichen=scan.nextLine();
System.out.println("请输入年龄:");
String age=scan.nextLine();
//将用户数据写入user.txt
byte[] bs =name.getBytes("utf-8");
//将数组扩容至32字节,方便写入与读取
bs=Arrays.copyOf(bs, 32);
raf.write(bs);
bs = psw.getBytes("utf-8");
bs=Arrays.copyOf(bs, 32);
raf.write(bs);
bs = nichen.getBytes("utf-8");
bs=Arrays.copyOf(bs, 32);
raf.write(bs);
bs = age.getBytes("utf-8");
bs=Arrays.copyOf(bs, 32);
raf.write(bs);
scan.close();
raf.close();
}
二、文件内容的读出
public static void main(String[] args) throws Exception {
Scanner scan =new Scanner(System.in);
System.out.println("请输入需要修改的账号名称:");
String upname=scan.nextLine();
RandomAccessFile raf=new RandomAccessFile("user.txt", "rw");
byte[] bs=new byte[32];
boolean index=false;
for(int i=0;i<raf.length()/128;i++) {
raf.seek(i*128);//指针每次需要移动至下一条记录的位置
raf.read(bs);
String str=new String(bs,"utf-8").trim();
if(upname.equals(str)) {
System.out.println("请输入修改后的昵称:");
bs=scan.nextLine().getBytes("utf-8");
raf.seek(i*128+64);
raf.write(bs);
System.out.println("修改成功!");
index=true;
}
}
if (!index) {
System.out.println("用戶不存在!!");
}
raf.close();
scan.close();
}