package demo1;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;
public class DateDemo {
/*
* 用RandomAccessFile 模仿数据库写法
* */
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
RandomAccessFile raf = new RandomAccessFile(new File("./date.txt"),"rw");
// 各个 信息占空间是固定值
// 姓名 20 年龄 10 联系方式20 地址 60
for (int i = 0; i < 3; i++) {
System.out.println("请输入第"+(i+1)+"学生的姓名");
StringBuilder strb_Name = new StringBuilder(in.nextLine());
strb_Name = DateDemo.dealString(strb_Name, 20);
System.out.println("请输入第"+(i+1)+"学生的年龄");
StringBuilder strb_Age = new StringBuilder(in.nextLine());
strb_Age = DateDemo.dealString(strb_Age, 10);
System.out.println("请输入第"+(i+1)+"学生的联系方式");
StringBuilder strb_Tel = new StringBuilder(in.nextLine());
strb_Tel = DateDemo.dealString(strb_Tel, 20);
System.out.println("请输入第"+(i+1)+"学生的地址");
StringBuilder strb_Addr = new StringBuilder(in.nextLine());
strb_Addr = DateDemo.dealString(strb_Addr, 60);
strb_Name.append(strb_Age).append(strb_Tel).append(strb_Addr).append("\r\n");
raf.write((strb_Name+"").getBytes());
strb_Name.delete(0, strb_Name.length());
}
System.out.println("接下载修改第二名同学的电话和地址信息");
System.out.println("请输入电话");
StringBuilder strb_Tel = new StringBuilder(in.nextLine());
strb_Tel = DateDemo.dealString(strb_Tel, 20);
raf.seek(112+30);
raf.write(strb_Tel.toString().getBytes());
System.out.println("请输入地址");
StringBuilder strb_Addr = new StringBuilder(in.nextLine());
strb_Addr = DateDemo.dealString(strb_Addr, 60);
raf.seek(112+30+20);
raf.write(strb_Addr.toString().getBytes());
raf.close();
in.close();
}
//处理输入的字符 空间没有沾满的 用空格代替
public static StringBuilder dealString(StringBuilder strb , int num ) {
byte[] b = (""+strb).getBytes();
for (int i = 0; i < num - b.length; i++) {
strb.append(" ");
}
return strb;
}
}