在我们学习JAVA时,增删改查是很重要的环节,以下是用学生管理系统为例,简单的运用增删改查,并用BufferedReader和BufferedWriter类对数据进行读取和存储;
面对这个问题,我们可以分为两个类,一个学生类和学生管理系统类;
首先我们要定义学生类,学号,姓名,年龄,家庭地址;
package studentManager1;
public class student {
private String id;
private String name;
private String age;
private String adrss;
public student() {
super();
// TODO Auto-generated constructor stub
}
public student(String id, String name, String age, String adrss) {
super();
this.id = id;
this.name = name;
this.age = age;
this.adrss = adrss;
}
public String getid() {
return id;
}
public void setid(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAdrss() {
return adrss;
}
public void setAdrss(String adrss) {
this.adrss = adrss;
}
}
接下来学生管理系统类,分为主界面,数据读入,数据写入,增删改查的一些方法;
先是主界面;
public class studentManager {
public static void main(String[] args) throws IOException {
String Filename="bw4.txt";
while(true) {
System.out.println("------欢迎进入学生管理系统------");//主页面的创建
//System.out.println("请选择你要进行得操作");
System.out.println("1,查看所有得学生信息");
System.out.println("2,添加学生信息");
System.out.println("3,删除学生信息");
System.out.println("4,修改学生信息");
System.out.println("5,退出");
System.out.println("请选择你要进行得操作");
Scanner sc=new Scanner(System.in);
String choicstring=sc.nextLine();
switch(choicstring) { //运用switch语句进行选择
case "1":
findAllstudent(Filename);
break;
case "2":
addstudent(Filename);
break;
case "3":
deletestudent(Filename);
break;
case "4":
updatestudent(Filename);
break;
case "5":
default:
System.out.println("谢谢你的使用!");
System.exit(0);
break;
}
}
}
剩下就是对方法的完善,在写增删改查方法之前我们要先写ReaderDate和WriterDate方法对文件中的数据进行读取和存储;
public static void readDate(String Filename,ArrayList<student> array) throws IOException {
BufferedReader br=new BufferedReader(new FileReader(Filename));//运用BufferedReader来对文件中的数据进行读取
String line;
while((line=br.readLine())!=null) {
String[] strarray=line.split(",");
student s=new student();
s.setid(strarray[0]);
s.setName(strarray[1]);
s.setAge(strarray[2]);
s.setAdrss(strarray[3]);
array.add(s);
}
br.close();
}
public static void writerDate(String Filename,ArrayList<student> array) throws IOException {
BufferedWriter bw=new BufferedWriter(new FileWriter(Filename));//运用BufferedWriter对数据进行写入文件
for(int i=0;i<array.size();i++) {
student s=array.get(i);
StringBuilder sb=new StringBuilder();
sb.append(s.getid()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getAdrss());
bw.write(sb.toString());
bw.newLine();
bw.flush();
}
bw.close();
}
写完这两个方法我们就可以对增删改查方法进行编写;
以下就是我们完整的学生管理类,可以对数据进行简单的增删改查;
package studentManager1;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
//简单的学生管理系统的增删改查
public class studentManager {
public static void main(String[] args) throws IOException {
String Filename="bw4.txt";
while(true) {
System.out.println("------欢迎进入学生管理系统------");//主页面的创建
System.out.println("1,查看所有得学生信息");
System.out.println("2,添加学生信息");
System.out.println("3,删除学生信息");
System.out.println("4,修改学生信息");
System.out.println("5,退出");
System.out.println("请选择你要进行得操作");
Scanner sc=new Scanner(System.in);
String choicstring=sc.nextLine();
switch(choicstring) { //运用switch语句进行选择
case "1":
findAllstudent(Filename);
break;
case "2":
addstudent(Filename);
break;
case "3":
deletestudent(Filename);
break;
case "4":
updatestudent(Filename);
break;
case "5":
default:
System.out.println("谢谢你的使用!");
System.exit(0);
break;
}
}
}
public static void readDate(String Filename,ArrayList<student> array) throws IOException {
BufferedReader br=new BufferedReader(new FileReader(Filename));//运用BufferedReader来对文件中的数据进行读取
String line;
while((line=br.readLine())!=null) {
String[] strarray=line.split(",");
student s=new student();
s.setid(strarray[0]);
s.setName(strarray[1]);
s.setAge(strarray[2]);
s.setAdrss(strarray[3]);
array.add(s);
}
br.close();
}
public static void writerDate(String Filename,ArrayList<student> array) throws IOException {
BufferedWriter bw=new BufferedWriter(new FileWriter(Filename));//运用BufferedWriter对数据进行写入文件
for(int i=0;i<array.size();i++) {
student s=array.get(i);
StringBuilder sb=new StringBuilder();
sb.append(s.getid()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getAdrss());
bw.write(sb.toString());
bw.newLine();
bw.flush();
}
bw.close();
}
private static void updatestudent(String Filename) throws IOException {
// TODO Auto-generated method stub
ArrayList<student> array=new ArrayList<>();//对数据进行修改的方法
readDate(Filename,array);
System.out.println("请输入想要修改学生得学号:");
Scanner in=new Scanner(System.in);
String id=in.nextLine();
int index=-1;
for(int i=0;i<array.size();i++) {
student s=array.get(i);
if(s.getid().equals(id)) {
index=i;
}
}
if(index==-1) {
System.out.println("对不起,没有此学生得信息!");
}else {
student s=new student();
System.out.println("请修改学号:");
id=in.nextLine();
s.setid(id);
System.out.println("请修改姓名:");
String name=in.nextLine();
s.setName(name);
System.out.println("请修改年龄:");
String age=in.nextLine();
s.setAge(age);
System.out.println("请修改地址:");
String adrss=in.nextLine();
s.setAdrss(adrss);
array.set(index, s);
writerDate(Filename, array);
System.out.println("修改成功!");
}
}
private static void addstudent(String Filename) throws IOException {
// TODO Auto-generated method stub
ArrayList<student> array=new ArrayList<>();//添加数据的方法
readDate(Filename,array);
Scanner in=new Scanner(System.in);
String id;
while(true) {
System.out.println("请输入学号:");
id=in.nextLine();
boolean flag=false;
for(int i=0;i<array.size();i++) {
student s1=array.get(i);
if(s1.getid().equals(id)) {
flag=true;
}
}
if(flag) {
System.out.println("你输入得学号已经存在,请重新输入:");
}else {
break;
}
}
System.out.println("请输入姓名:");
String name=in.nextLine();
System.out.println("请输入年龄:");
String age=in.nextLine();
System.out.println("请输入学生地址:");
String adrss=in.nextLine();
student s=new student(id,name,age,adrss);
array.add(s);
writerDate(Filename, array);
System.out.println("添加学生成功!");
}
private static void deletestudent(String Filename) throws IOException {
// TODO Auto-generated method stub
ArrayList<student> array=new ArrayList<>();//删除数据的方法
readDate(Filename,array);
System.out.println("请输入你想要删除得学号:");
Scanner in=new Scanner(System.in);
String id=in.nextLine();
int index=-1;
for(int i=0;i<array.size();i++) {
student s=array.get(i);
if(s.getid().equals(id)) {
index=i;
break;
}
}
if(index==-1) {
System.out.println("对不起,没有此学号!");
}else {
array.remove(index);
writerDate(Filename, array);
System.out.println("删除学生成功!");
}
}
private static void findAllstudent(String Filename) throws IOException {
// TODO Auto-generated method stub
ArrayList<student> array=new ArrayList<>();//查找数据的方法
readDate(Filename, array);
if(array.size()==0) {
System.out.println("对不起,现在没有学生数据可查询!");
return;
}
System.out.println("学号\t\t姓名\t年龄\t地址");
for(int i=0;i<array.size();i++) {
student s=array.get(i);
System.out.println(s.getid()+"\t\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAdrss());
}
}
}