I\O流图书馆管理系统项目总结

1.项目要求
(1)读者信息管理:包括读者信息添加和读者信息查询与修改功能。用户登录成功之后,可以浏览所有读者的信息,也可以检索特定读者的信息;同时,可以对读者信息进行维护,包括增加、删除及修改。具体信息包括读者类型(读者的类型决定着他可以借到书的最大数量和最大归还天数)、读者姓名、出生日期、性别、电话、所在院系、注册日期等。(相关存储数据可通过I/O流直接存在文件,可也直接在文件里读的数据)
(2)图书信息管理:包括图书信息添加和图书信息查询与修改功能。用户登录成功之后,可以浏览所有图书信息和检索特定图书的信息;也可以对图书信息进行维护。包括添加图书、删除图书以及修改图书信息。具体信息包括:图书ISBN、图书名称、作者、出版社、出版日期、印刷次数、单价、图书类别等。(相关存储数据可通过I/O流直接存在文件,可也直接在文件里读的数据)
(3)图书借阅管理:包括图书借阅和图书归还功能。图书借阅功能,先输入读者的编号,然后输入要借阅的图书的信息,记录系统当前时间即借阅时间;图书归还功能,输入读者的编号,选择其名下已借阅的图书,判断当前日期即归还日期与借阅日期的差值是否超过了规定的期限,计算罚金,从而进行图书的归还操作。具体信息包括:借阅日期、归还日期、罚金。由于要计算罚金,故需要知道该读者的读者类型,根据类型判断其可借图书天数、可借图书数量等。(相关存储数据可通过I/O流直接存在文件,可也直接在文件里读的数据)
(4)基础信息维护:包括图书类别设置、读者类别设置及罚金设置。图书类别设置,可以对图书的类别进行增加、删除、修改和查询;读者类别设置可以对读者的类别进行增加、删除、修改和查询;罚金设置,可以指定超期一天的罚金标准。(相关存储数据可通过I/O流直接存在文件,可也直接在文件里读的数据)
(5)用户管理:包括修改密码、用户添加和删除。修改密码,是指当前用户修改自己的密码;用户添加和删除,是对新增和去除系统用户时对用户信息的维护。(相关存储数据可通过I/O流直接存在文件,可也直接在文件里读的数据)

2.总结
本次项目中I\O流的存取文件,我用的是字符流BufferedReader和BufferedWriter,
BufferedWriter有一个换行的方法newLine()

BufferedWriter bwN = new BufferedWriter(new FileWriter("H:\\Library\\Books/书名.txt", true));
        bwN.write(bookName);
        bwN.newLine();
        bwN.flush();
        bwN.close();

BufferedReader有一个读行的方法readLine()

BufferedReader brbn = new BufferedReader(new FileReader("H:\\Library\\Books/书名.txt"));
        String bn = null;
        while ((bn = brbn.readLine()) != null) {
            arbn.add(bn);
        }
        brbn.close();

操作的时候我将每次要存入的数据一行一行的写入,用的时候我在一行行的读取放入数组中。
这里我为了方便修改属性,然后根据属性建了多个文件,写入读取都是一一对应。
在这里插入图片描述
因为每次要使用数据的时候都要读取然后再保存,造成的后果就是代码太多了,都把自己写晕了。
这里后来想了split()方法,以空格分割内容(由于自己写了大半,懒得再改了)

public void test1() throws IOException {
       FileReader fr = new FileReader("H:\\STU/aa.txt");
       int data;
       String str = null;
       char[] cbuf = new char[1024];
       while ((data=fr.read(cbuf,0,1024))!=-1){
            str = new String(cbuf,0,1024);
       }
       fr.close();
       String[] str1=str.split(" ");
       for (int i =0;i<=str1.length-1;i++){
           System.out.print(str1[i]);
       }
   }

存的时候以空格分开每部分内容,存进同一行,换行再次写入,
读取的时候按行读取,以空格分割内容存入不同的数组中。

3.项目中获取的小技巧

正则限定选项范围

String pChoose2 = "[1|2]";
System.out.println("1.继续添加 2.返回");
        String strChoose;
        strChoose = scanner.next();
        while (!strChoose.matches(pChoose2)) {
            System.out.println("请输入正确的选项");
            strChoose = scanner.next();
        }
        int choose = Integer.valueOf(strChoose);
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSK2580

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值