添加学生类信息到文本
public static void main(String[] args) throws IOException {
// 定义学生类
// 创建集合对象array
ArrayList<Student> array = new ArrayList<Student>();
addStudent(array);
addStudent(array);
addStudent(array);
// 创建输出缓冲流
BufferedWriter bw = new BufferedWriter(new FileWriter("babba.java", true));
// 遍历集合对象array,
for (int a = 0; a < array.size(); a++) {
Student s = array.get(a);
// 创建StringBuilder对象sb,用到他的append方法
StringBuilder sb = new StringBuilder();
sb.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAge());
// 把上面的转换成String
bw.write(sb.toString());
bw.newLine();
bw.flush();
System.out.println(sb.toString());
}
bw.close();
}
public static void addStudent(ArrayList<Student> array) {
// 创建键盘输入
Scanner sc = new Scanner(System.in);
String id;
while (true) {
// 创建变量接收数据
System.out.println("id:");
id = sc.nextLine();
int index = -1;
for (int a = 0; a < array.size(); a++) {
Student s = array.get(a);
if (s.getId().equals(id)) {
index = a;
}
}
if (index == -1) {
break;
} else {
System.out.println("学号有重复");
return;
}
}
System.out.println("name:");
String name = sc.nextLine();
System.out.println("age:");
String age = sc.nextLine();
// 把上面的数据添加到学生类
Student s = new Student();
s.setId(id);
s.setAge(age);
s.setName(name);
// 添加到集合
array.add(s);
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/98d1d9ccd356b394378bc243f6f575ef.png)
学生管理系统IO流版本
package com.StudentManager;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
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 {
ArrayList<Student> array=new ArrayList<Student>();
String filename="babba.java";
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.退出系统");
//创建键盘输入,选择操作
Scanner sc=new Scanner(System.in);
String select=sc.nextLine();
//选择项
switch(select){
case "1":
findStudent(filename);
break;
case "2":
addStudent(filename);
break;
case "3":
updateStudent(filename);
break;
case "4":
deleteStudent(filename);
break;
case "5":
default:
System.out.println("成功退出");
System.exit(0);
}
}
}
//输入读取的方法
public static void read(String filename,ArrayList<Student> array) throws IOException{
//创建输入缓冲流
BufferedReader br=new BufferedReader(new FileReader(filename));
//创建一个变量接收
String line;
while((line=br.readLine())!=null){
//创建数组对象strArray,用","分割原字符串,使其变成数组
String[] strArray=line.split(",");
Student s=new Student();
//把上面变成数组的元素,用学生类方法存储
s.setId(strArray[0]);
s.setName(strArray[1]);
s.setAge(strArray[2]);
//把学生类对象存储的元素放进集合
array.add(s);
}
br.close();
}
//输出写入的方法
public static void writer(String filename,ArrayList<Student> array) throws IOException{
//创建输出缓冲流
BufferedWriter bw=new BufferedWriter(new FileWriter(filename));
//循环,从集合中读取元素
for(int a=0;a<array.size();a++){
Student s=array.get(a);
//创建对象sb,使用他的方法
StringBuilder sb=new StringBuilder();
//链式编写,组合起来存储
sb.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAge());
//把上面的转换成String类型,并输出写入对象bw
bw.write(sb.toString());
bw.newLine();
bw.flush();
}
bw.close();
}
//查看所有学生
public static void findStudent(String filename) throws IOException{
//形参从原来的集合对象变成现在的文件路径对象
//然后创建一个集合对象array
ArrayList<Student> array=new ArrayList<Student>();
//输入读取路径下的文件,存储到集合中
read(filename,array);
//判断集合数组长度,如果为0就返回上一层
if(array.size()==0){
System.out.println("系统中暂无资料,返回上一层");
return;
}
System.out.println("学号\t姓名\t年龄");
//循环遍历集合中数组
for(int a=0;a<array.size();a++){
Student s=array.get(a);
System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t");
}
}
//添加学生信息
public static void addStudent(String filename) throws IOException{
//形参从原来的集合对象变成现在的文件路径对象
//然后创建一个集合对象array
ArrayList<Student> array=new ArrayList<Student>();
//创建键盘输入对象sc
Scanner sc=new Scanner(System.in);
String id;
while(true){
//输入读取路径下的文件,存储到集合中
read(filename,array);
System.out.println("id:");
id=sc.nextLine();
int index=-1;
for(int a=0;a<array.size();a++){
Student s=array.get(a);
if(s.getId().equals(id)){
index=a;
}
}
if(index==-1){
break;
}else{
System.out.println("学号重复了");
}
}
System.out.println("name:");
String name=sc.nextLine();
System.out.println("age:");
String age=sc.nextLine();
//把上面存储到学生类方法中
Student s=new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
//加入集合
array.add(s);
//最后,把集合存储的元素,输出写入到路径下的文件
writer(filename,array);
}
//修改学生信息
public static void updateStudent(String filename) throws IOException{
//创建集合
ArrayList<Student> array=new ArrayList<Student>();
//创建键盘输入
Scanner sc=new Scanner(System.in);
//输入读取
read(filename,array);
String id;
while(true){
System.out.println("id:");
id=sc.nextLine();
int index=-1;
//循环判断是否有重复
for(int a=0;a<array.size();a++){
Student s=array.get(a);
if(s.getId().equals(id)){
index=a;
}
}
if(index==-1){
System.out.println("不存在...");
}else{
System.out.println("name:");
String name=sc.nextLine();
System.out.println("age:");
String age=sc.nextLine();
Student s=new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
array.set(index,s);
System.out.println("修改成功");
break;
}
}
writer(filename,array);
}
//删除学生信息
public static void deleteStudent(String filename) throws IOException{
//创建集合对象array
ArrayList<Student> array=new ArrayList<Student>();
//调用输入读取方法
read(filename,array);
//创建键盘输入
Scanner sc=new Scanner(System.in);
int index=-1;
while(true){
//创建变量id接收键盘输入的数据
String id=sc.nextLine();
for(int a=0;a<array.size();a++){
Student s=array.get(a);
if(s.getId().equals(id)){
index=a;
}
}
if(index==-1){
System.out.println("not found");
}else{
array.remove(index);
System.out.println("delete成功");
break;
}
}
//输出写入到文本
writer(filename,array);
}
}// 这个大括号是类的