java删除文本文件_用JAVA实现对txt文件文本增删改查

packagecom.qiqiao.test;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.io.Serializable;importjava.util.Arrays;importjava.util.HashMap;importjava.util.HashSet;importjava.util.Scanner;importjava.util.Set;public classStudentManager {private static File DB = new File("students.db");private static Set studentList = null;

@SuppressWarnings("unchecked")private static voidinitStudentList() {if(DB.exists()) {

FileInputStream fi= null;

ObjectInputStream oi= null;try{

fi= newFileInputStream(DB);

oi= newObjectInputStream(fi);

Object obj=oi.readObject();

fi.close();

oi.close();if (obj instanceofSet)

studentList= (Set) obj;

}catch(Exception e) {

e.printStackTrace();

}

}if (studentList == null)

studentList= new HashSet();

}private static voidsave() {if (studentList == null)return;if (!DB.exists())try{

DB.createNewFile();

}catch(Exception e) {

e.printStackTrace();

}

FileOutputStream fo;try{

fo= newFileOutputStream(DB);

ObjectOutputStream oo= newObjectOutputStream(fo);

oo.writeObject(studentList);

fo.close();

oo.close();

}catch(Exception e) {

e.printStackTrace();

}

}private static Student[] getStudents(intid, String name) {

HashSet rlt = new HashSet();if (id != 0) {for(Student s : studentList) {if (s.id ==id)

rlt.add(s);

}

}else if (name != null && !name.isEmpty()) {for(Student s : studentList) {if(s._name.equalsIgnoreCase(name))

rlt.add(s);

}

}return rlt.toArray(new Student[0]);

}static{

initStudentList();

}static voidout(Object obj) {

System.out.println(obj);

}public static voidmenu() {

out("Welcome to use Student Manager!\n1-search student;\t2-add student;\t3-list all students;\nothers-exit");

Scanner in= newScanner(System.in);

Student student= null;

String input=in.nextLine();if (input.equals("1")) {

Student[] students= new Student[0];

out("please input name/id");

String ins=in.nextLine();if (ins.matches("\\d+"))

students= getStudents(Integer.parseInt(ins), null);elsestudents= getStudents(0, ins);if (students.length != 0) {

out(Arrays.toString(students).replaceAll("\\[|\\]|, ", "\n"));if (students.length == 1)

student= students[0];else{

out("please choose a student by id:\n");int i =in.nextInt();for(Student s : students) {if (s.id ==i) {

student=s;break;

}else{

out("error");

menu();

}

}

}

out("1-set score;\t2-delete score;\t3-delete student;\tother-exit");int input1 =in.nextInt();

in.nextLine();

String course= null;float score = 0;switch(input1) {case 1:

out("please input course");

course=in.nextLine();

out("please input score");

score=in.nextFloat();

in.nextLine();

student.setScore(course, score);break;case 2:

out("please input course");

course=in.nextLine();

student.removeScore(course);break;case 3:

student.removeFrom(studentList);break;

}

}else{

out("NO current record!");

}

}if (input.equals("2")) {

out("please input id");int id =in.nextInt();

in.nextLine();

out("please input name");

String name=in.nextLine();

out("please input class");

String cname=in.nextLine();

student= newStudent(id, name, cname);if(studentList.add(student)) {

out("create success!\n");

String input2= "-";while (!input2.isEmpty()) {

out("set score? \n1-yes;\t2-no");

input2=in.nextLine();if (input2.equals("1")) {

out("please input course");

String course=in.nextLine();

out("please input score");float score =in.nextFloat();

student.setScore(course, score);

in.nextLine();

}else

break;

}

}elseout("Error: id or student exists");

}if (input.equals("3")) {

out(studentList.toString().replaceAll("\\[|\\]|, ", "\n"));

}if(input.isEmpty())return;

save();

menu();

}public static voidmain(String[] args) {

menu();

}

}class Student implementsSerializable {publicString toString() {return "id: "

+id+ "\tclass: "

+_class+ "\tname: "

+_name+ courses.toString().replaceAll("\\{|\\}|, ", "\n").replaceAll("=", ": ");

}

Student(intid, String _name, String _class) {this.id =id;this._class =_class;this._name =_name;

}private static final long serialVersionUID = 1L;public int id = 0;public String _name = "";public String _class = "";

HashMap courses = new HashMap();void setScore(String course, floatscore) {

courses.put(course, score);

System.out.println("set success!\n\n" + this);

}voidremoveScore(String course) {

courses.remove(course);

System.out.println("delete success!\n\n" + this);

};void removeFrom(Set>list) {

list.remove(this);

System.out.println("delete success!");

}public inthashCode() {return 31;

}public booleanequals(Object obj) {

Student s= null;if (obj instanceofStudent) {

System.out.println(1);

s=(Student) obj;return s.id ==id|| (s._class.equals(_class) &&s._name.equals(_name));

}return false;

}

}classDaJiangYou {

DaJiangYou() {

System.out.println("I am da jiang you");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值