用RandomAccessFile (读写流)模仿数据库写法

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;

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,904评论 0 2
  • DAY 05 1、 public classArrayDemo { public static void mai...
    周书达阅读 743评论 0 0
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,719评论 0 3
  • 1 IO(三)No20 1.1Properties 属性集 【 Properties属性集,主要用于操作配置属...
    征程_Journey阅读 907评论 0 1
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,434评论 0 10