课堂测试四(文件读写)

学生信息管理系统

(本程序以文本方式存储数据,不通过数组,直接对文件进行操作)

学生类

Student.java

 1 public class Student {
 2     private String stunumber;            //学号
 3     private String name;                //姓名
 4     private int age;                    //年龄
 5     private boolean sex;                //性别
 6     private double score;                //分数
 7
 8     /***构造方法***/
 9     public Student(String num,String name,int age,boolean sex,double score){
10         stunumber = num;
11         this.name = name;
12         this.age = age;
13         this.sex = sex;
14         this.score = score;
15     }
16
17     /***get函数***/
18     public String getNum(){                //取学号
19         return stunumber;
20     }
21     public String getName(){            //取姓名
22         return name;
23     }
24     public int getAge(){                //取年龄
25         return age;
26     }
27     public boolean getSex(){            //取性别
28         return sex;
29     }
30     public double score(){                //取分数
31         return score;
32     }
33
34     /***set函数***/
35     public void setNum(String num){                //设置学号
36          stunumber = num;
37     }
38     public void setName(String name){            //设置姓名
39          this.name = name;
40     }
41     public void setAge(int age){                //设置年龄
42          this.age = age;
43     }
44     public void setSex(boolean sex){            //设置性别
45          this.sex = sex;
46     }
47     public void score(double score){                //设置分数
48          this.score = score;
49     }
50 }

管理类

StudentManager.java

  1 import java.io.*;
  2 import java.util.Scanner;
  3 public class StudentManager {
  4
  5     /***主函数***/
  6     public static void main(String[] args) throws IOException {
  7         Scanner in = new Scanner(System.in);
  8         while(true){
  9             menu();
 10             int n = in.nextInt();
 11             switch(n){
 12             case 1:showStudent();break;
 13             case 2:
 14                 System.out.println("请依次输入学生的学号、姓名、年龄、性别(true/false)、分数:");
 15                 addStudent(in.next(),in.next(),in.nextInt(),in.nextBoolean(),in.nextDouble());
 16                 break;
 17             case 3:
 18                 System.out.println("输入要删除的学生的学号:");
 19                 deleteStudent(in.next());
 20                 break;
 21             case 4:
 22                 System.out.println("输入要修改的学生的学号,及修改后的姓名、年龄、性别(true/false)、分数:");
 23                 updateStudent(in.next(),in.next(),in.nextInt(),in.nextBoolean(),in.nextDouble());
 24                 break;
 25             case 5:
 26                 System.out.println("输入要查询的学生的学号:");
 27                 selectStudent(in.next());
 28                 break;
 29             }
 30         }
 31     }
 32
 33     /***显示菜单***/
 34     public static void menu(){
 35         System.out.println("**********************************************************");
 36         System.out.println("                                           石家庄铁道大学信息科学与技术学院");
 37         System.out.println("                                                        学生信息管理系统V2.0");
 38         System.out.println("**********************************************************");
 39         System.out.println("                     1.遍历输出学生信息;");
 40         System.out.println("                     2.新学生信息录入;");
 41         System.out.println("                     3.删除学生信息;");
 42         System.out.println("                     4.修改学生信息;");
 43         System.out.println("                     5.查询学生信息;");
 44         System.out.println("**********************************************************");
 45     }
 46
 47     /***显示所有学生信息 ***/
 48     public static void showStudent() throws IOException{
 49         File file = new File("student.dat");
 50         BufferedReader reader = null;
 51         reader = new BufferedReader(new FileReader(file));
 52         String tempString = null;
 53         while ((tempString = reader.readLine()) != null) {
 54             System.out.println(tempString);
 55         }
 56     }
 57
 58     /***添加学生信息***/
 59     public static void addStudent(String stunumber,String name,int age,boolean sex,double score) throws IOException{
 60         FileWriter writer = new FileWriter("student.dat",true);
 61         String s;
 62         if(sex)
 63             s = "女";
 64         else s = "男";
 65         writer.append(stunumber + " " + name + " " + age + " " + s + " " + score + "\r\n");
 66         writer.close();
 67         System.out.println("添加成功!");
 68     }
 69
 70     /***删除学生信息 ***/
 71     public static void deleteStudent(String stunumber) throws IOException{
 72
 73         StringBuffer all = new StringBuffer();
 74         File file = new File("student.dat");
 75         String temp;
 76         BufferedReader reader = new BufferedReader(new FileReader(file));
 77
 78         while((temp = reader.readLine()) != null){
 79             if(!temp.startsWith(stunumber))
 80                 all.append(temp + "\r\n");
 81         }
 82         reader.close();
 83
 84         BufferedWriter writer = new BufferedWriter(new FileWriter(file));
 85         writer.write(all.toString());;
 86         writer.close();
 87         System.out.println("删除成功!");
 88     }
 89
 90     /***更新学生信息***/
 91     public static void updateStudent(String stunumber,String name,int age,boolean sex,double score) throws IOException{
 92         StringBuffer all = new StringBuffer();
 93         File file = new File("student.dat");
 94         String temp,s;
 95         if(sex)
 96             s = "女";
 97         else s = "男";
 98         BufferedReader reader = new BufferedReader(new FileReader(file));
 99
100         while((temp = reader.readLine()) != null){
101             if(!temp.startsWith(stunumber))
102                 all.append(temp + "\r\n");
103             else all.append(stunumber + " " + name + " " + age + " " + s + " " + score + "\r\n");
104         }
105         reader.close();
106
107         BufferedWriter writer = new BufferedWriter(new FileWriter(file));
108         writer.write(all.toString());;
109         writer.close();
110         System.out.println("修改成功!");
111     }
112
113     /***查询学生信息***/
114     public static void selectStudent(String stunumber) throws IOException{
115         File file = new File("student.dat");
116         BufferedReader reader = new BufferedReader(new FileReader(file));
117         String stuLine;
118         while((stuLine = reader.readLine()) != null)
119         {
120             if(stuLine.startsWith(stunumber))
121             {
122                 System.out.println(stuLine);
123                 return;
124             }
125         }
126         System.out.println("查询结果为空!");
127     }
128 }
时间: 2024-10-10 09:38:28

课堂测试四(文件读写)的相关文章

四套读写文件方案

四套读写文件方案 :实例 一:使用字节流读取文本文件 //字节输入流练习:从文本文件读取各种数据(字母,字符串都支持) //声明流对象 try { FileInputStream fis=new FileInputStream("c:\\ming.txt"); int data; System.out.println("可读取的字节数:"+fis.available()); System.out.println("文件内容为:"); //循环读取

Java课堂测试——输出单个文件中的前N个最常出现的英语单词

课堂测试一:输出某个英文文本文件中26字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位. HarryFre.java 1 package demo05; 2 3 import java.io.FileInputStream; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.text.DecimalFormat; 7 import java.util.Array

java四种文件读写方式及性能比较

测试代码 package com.boot.demo.test.io; import java.io.*; import java.lang.reflect.Method; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardOpenOp

课堂测试-------文件操作

今天测试java文件内容,但文件还不熟悉,这几天一直在搞JavaWeb,该好好看看Java文件了 问题一:读入文件中的内容,输出前n个出现最多的字母(将单词分解成字母),区分大小写 解题思路:首先得先读取文件内容,将一些符号删去,然后提取单词,再提取字母,将它们分别放到52个char类型的数组当然还有它的次数,当然放数组里是由规律的.最后排序. 代码:这是一个方法,用的时候只需把文件地址传入即可! public static void showTheMostAlphabet(String pat

2017-2018-1 20155330 《信息安全系统设计基础》课堂测试&课下作业

2017-2018-1 20155330 <信息安全系统设计基础>课堂测试&课下作业 stat命令的实现-mysate 学习使用stat(1),并用C语言实现 提交学习stat(1)的截图 man -k ,grep -r的使用 伪代码 产品代码 mystate.c,提交码云链接 测试代码,mystat 与stat(1)对比,提交截图 STAT(1)学习 使用man 1 stat命令查看 使用man -k stat | grep 2查找相关函数 man 2 stat查看stat函数 产品

java文件读写操作

Java IO系统里读写文件使用Reader和Writer两个抽象类,Reader中read()和close()方法都是抽象方法.Writer中 write(),flush()和close()方法为抽象方法.子类应该分别实现他们. Java IO已经为我们提供了三个方便的Reader的实现类,FileReader,InputStreamReader和BufferedReader.其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁.你可以在构造器重指定编码的方式,如果不

课堂测试1 登录界面

1.网站系统开发需要什么技术 前台photoshop(美工必学的)+dreaweaver(css+div)+javacript,后台php .net  asp 等编程语言,要想做好网站HTML.JAVASCRIPT.CSS.数据库.服务器配置必须要学会. 在网上查了一下,要做好一个网站系统,要学习的技术有很多,简单列举一下: (1)java Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servlet.JDBC.JavaBean(Application)四部分技术. (

Java的文件读写操作

当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader.其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁.你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编码方式,例如GBK等.使用FileReader读取文件: [java] view plain copy FileReader fr = new FileReader("ming.txt");

perl5 第五章 文件读写

第五章 文件读写 by flamephoenix 一.打开.关闭文件二.读文件三.写文件四.判断文件状态五.命令行参数六.打开管道 一.打开.关闭文件   语法为open (filevar, filename),其中filevar为文件句柄,或者说是程序中用来代表某文件的代号,filename为文件名,其路径可为相对路径,亦可为绝对路径.    open(FILE1,"file1");    open(FILE1, "/u/jqpublic/file1");  打开