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

如题,需要一个对 学生信息管理系统 的增删改查源代码,自定义类不少于三个,主功能点不少于三个,注释有无均可。谢谢各位大神了

代码就是一种编译器认可的语言,通过在编译器里写代码,编译器就可以把代码翻译成机器码,也就是二进制码,二进制码是由0和1组成的,如:1的二进制码可以表示为:0001,3表示为:0011,二进制码机器(电脑)可以直接识别,代码则不行,需要翻译成机器码。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-20
用XML或者properties很容易实现增删改查
第2个回答  推荐于2018-04-10
正好今天写了个~原来是两个类,好吧,加一个...= =~囧
以文件的形式存储的

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class StudentManager {
private static File DB = new File("students.db");
private static Set<Student> studentList = null;

@SuppressWarnings("unchecked")
private static void initStudentList() {
if (DB.exists()) {
FileInputStream fi = null;
ObjectInputStream oi = null;
try {
fi = new FileInputStream(DB);
oi = new ObjectInputStream(fi);
Object obj = oi.readObject();
fi.close();
oi.close();
if (obj instanceof Set)
studentList = (Set<Student>) obj;
} catch (Exception e) {
e.printStackTrace();
}
}
if (studentList == null)
studentList = new HashSet<Student>();
}

private static void save() {
if (studentList == null)
return;
if (!DB.exists())
try {
DB.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
FileOutputStream fo;
try {
fo = new FileOutputStream(DB);
ObjectOutputStream oo = new ObjectOutputStream(fo);
oo.writeObject(studentList);
fo.close();
oo.close();
} catch (Exception e) {
e.printStackTrace();
}
}

private static Student[] getStudents(int id, String name) {
HashSet<Student> rlt = new HashSet<Student>();
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 void out(Object obj){
System.out.println(obj);
}

public static void menu() {
out("Welcome to use Student Manager!\n1-search student;\t2-add student;\t3-list all students;\nothers-exit");
Scanner in = new Scanner(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);
else
students = 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=new Student(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;
}
}else out("Error: id or student exists");
}
if (input.equals("3")) {
out(studentList.toString().replaceAll("\\[|\\]|, ", "\n"));
}
if(input.isEmpty())return;
save();
menu();
}

public static void main(String[] args){
menu();
}
}

class Student implements Serializable {
public String toString() {
return "id: " + id + "\tclass: " + _class + "\tname: " + _name
+ courses.toString().replaceAll("\\{|\\}|, ", "\n").replaceAll("=", ": ");
}

Student(int id, 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<String, Float> courses = new HashMap<String, Float>();

void setScore(String course, float score) {
courses.put(course, score);
System.out.println("set success!\n\n"+this);
}

void removeScore(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 int hashCode() {
return 31;
}

public boolean equals(Object obj) {
Student s = null;
if(obj instanceof Student){
System.out.println(1);
s=(Student)obj;
return s.id==id||(s._class.equals(_class)&&s._name.equals(_name));
}
return false;
}
}
class DaJiangYou{
DaJiangYou(){
System.out.println("I am da jiang you");
}
}本回答被网友采纳

java io流对文件的增删改查
可以通过BufferedReader 流的形式进行流读取,之后通过readLine方法获取到的内容,之后通过if判断来实现在某些特定位置的查找、增加、删除、修改操作。举例:BufferedReader bre = null;OutputStreamWriter pw = null;\/\/定义一个流 try { String file = "D:\/test\/test.txt";bre = new BufferedReader(new...

java中如何实现数据的增删改查
int insertObject(Object o); --新增 int updateObject(Object o); -- 修改 int deleteObject(Object o); -- 删除 List queryObject(Object o); --查询全部 Object findObject(Object o);--通过ID查询单条记录 ---具体实现,需要看实际需求--- ...

怎么才能实现增删改查,我刚学习java,老师让写一个项目
实现增删改查 有很多种方法 一种是基于内存的 一种是基于缓存的,还有一种是基于数据库的,还有一个是基于文件的 每一种增删改查方式都不一样 比如 基于内存 又分 用数组方式存贮,集合方式存贮 缓存 如redis存贮 数据库 分 结构数据库 那就是 常用的mysql、orcale sql sql server 还有非结...

用JAVA编写的人事管理系统其中实现增删改查功能的代码
jsp + javabean + servlet的 dao + service + entity 从数据库验证登录。---》显示列表---》crud

javaservletjspmysql实现图书增删改查javase
关于java+servlet+jsp+mysql实现图书增删改查,java se这个很多人还不知道,今天来为大家解答以上的问题,现在让我们一起来看看吧!1、Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发: * Java SE(Java Platform,Standard Edition)。2、Java SE 以前称...

java MVC 实现增删改查
}public void setImages(Object images) {this.images = images;}public Object getStock() {return stock;}public void setStock(Object stock) {this.stock = stock;}}DBUtil类封装的是对数据库的连接:package servlet;import java.sql.Connection;import java.sql.DriverManager;import java.sql....

java项目开发,一个简单的增删改查模块。预估工作量大概需要多长时间...
简单的增删改查每个功能大概评估在500行代码总数就2000行,每人天70行的话。28天完成包括需求文档的写作,设计文档的写作,测试用例的编写及代码开发和单元测试、系统测试时间。

(JAVA)怎样将对数据库的增删查改方法封装起来便于以后调用
(JAVA)怎样将对数据库的增删查改方法封装起来便于以后调用 比如说在用户表内写入数据,以前我写的方法是publicvoidstoreUser(Useruser){Stringsql="insertintousersvalues(?,?,?,?)";Connectioncon=OpreDataBase.getConnection();try{Prepared... 比如说在用户表内写入数据,以前我写的方法是public void storeUser...

java用数组做一个管理系统,有增加,修剪,删除,日志等功能
3、你要做的就是把业务与增删改查的实现相结合起来。使用到的技术,数组,可以,比如图书管理系统你存图书,可以用Book[]这种的数组当然前提你有Book实体类,或者用List等集合,再高端点的(当然你不用jdbc连数据库,毕竟要用数组,但是数组就相当于最简单的内存数据库)你可以使用berkleydb等。这是讲...

javaswimggui多表项目增删改查
在Java Swing GUI项目中实现多表数据的增删改查操作,主要涉及到创建多个表单(JPanel或JFrame)来分别处理不同表的数据操作。每个表单可以包含相应的文本框(JTextField)、下拉框(JComboBox)、按钮(JButton)等组件,用于输入数据和触发操作。设计界面:首先,为每个表设计一个表单界面,包括输入字段和...

相似回答