简单的学生系统---保存到文件内

简单的学生系统—保存到文件内

清空集合

studentList.clear();

添加

创建保存信息的集合
保存到工程的路径下 直接写保存的文件名称
保存学生信息的文件对象制作成全局

private static File file=new File("student.txt");

创建一个字符输出流对象

BufferedWriter  out=new BufferedWriter(new FileWriter(file,true));  //此类不提供换行

调用写出方法来输出学生信息到文件

if(studentList.size()>0) {
    	for(Object obj:studentList) {     //遍历学生信息
    		Student  student=(Student)obj;  //创建学生信息对象
    		String  studentinfo=student.getStuid()+"-"+
    				student.getStuname()+"-"+student.getStuage()+"-"+
    				student.getStuaddress();		//拼接学生信息字符串
    		out.write(studentinfo);		//写出
    		out.newLine();	//换行
    		
    	}

刷新关流

out.flush();
out.close();

先添加数据到集合

boolean flag=studentList.add(student);

将集合中的数据写入文件

saveStudentInfoToFile(studentList);

如果不清空集合 第二次添加就会把第一次集合中保存的信息再次写出,清空集合不能放在保存方法之前,否则一个都不会保存–清空集合

studentList.clear();
return flag;

查询

读取文件中的数据到集合

public   void  readFileToList() {}

创建字符输入流对象

BufferedReader  in=new BufferedReader(new FileReader(file));

定义读取来的每一条学生信息
不等于空就持续读信息

String stuinfo=null;
while((stuinfo=in.readLine())!=null)

解析String类型的学生信息成学生对象

 public  Student jiexiStringStuInfo(String stuinfo) {
    	String stuarray[]=stuinfo.split("-");
    	Student student=new Student();
    	student.setStuid(Integer.parseInt(stuarray[0]));
    	student.setStuname(stuarray[1]);
    	student.setStuage(Integer.parseInt(stuarray[2]));
    	student.setStuaddress(stuarray[3]);
    	return student;
    }

把解析好的文件放入集合对象

studentList.add(jiexiStringStuInfo(stuinfo));

查询所有学生信息的数据访问方法

public ArrayList selectAll() {
		//清空集合
		studentList.clear();
		readFileToList();
		return studentList;
	}

根据学号查询学生信息的数据访问方法
查值

public Student selectByStuid(**int stuid**)

调取readFileToList传入集合
清空集合
根据学号修改学生信息数据访问方法
查找在新集合中的下标

 Student newListstudent=selectByStuid(student.getStuid());

传入

Object obj=studentList.set(studentList.indexOf(newListstudent), newStudent);

判断文件是否存在删除文件

if(file.exists()) {
			file.delete();
		}

修改后执行保存

		saveStudentInfoToFile(studentList);

根据学号删除学生信息数据访问方法

public boolean deleteByStuid(Student  student) {
		//清空集合
		studentList.clear();
		readFileToList();
		Student newListstudent=selectByStuid(student.getStuid());
		boolean flag=studentList.remove(newListstudent);
		if(file.exists()) {
			file.delete();
		}
		saveStudentInfoToFile(studentList);
		return flag;
	}

删除所有学生信息数据访问方法
直接删除文件
删除先判断是否为空

public boolean deleteAll() {
		boolean  flag =false;
		if(file.exists()) {
			flag=file.delete();
			try {
				file.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return flag;
	}

代码整合 :
例:

StudentDao.java

package com.lx.dao;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

import com.lx.bean.Student;
/**
 * 提供学生信息的数据访问类
 * @author Administrator
 *
 */
public class StudentDao {
    //保存信息的具体集合
	private  static ArrayList  studentList=new ArrayList();
	//定义保存学生信息的文件对象
	private static File file=new File("student.txt");
	/**
	 * 将集合中的学生信息保存到文件
	 * @param studentList
	 */
    private  void  saveStudentInfoToFile(ArrayList studentList) {
    	try {
    	//3.创建字符输出流对象
    	BufferedWriter  out=new BufferedWriter(new FileWriter(file,true));
    	//4.调用写出方法来输出学生信息到文件
    	if(studentList.size()>0) {
    	for(Object obj:studentList) {
    		Student  student=(Student)obj;
    		String  studentinfo=student.getStuid()+"-"+
    				student.getStuname()+"-"+student.getStuage()+"-"+
    				student.getStuaddress();
    		out.write(studentinfo);
    		out.newLine();
    		
    	}
    	out.flush();
    	out.close();
    	}
    	}catch(Exception e) {
    		e.printStackTrace();
    	}
    }
	
    /**
               * 读取文件中的数据到集合
     */
    public   void  readFileToList() {
    	try {
    	//清空集合
    	studentList.clear();
    	//创建字符输入流对象
    	BufferedReader  in=new BufferedReader(new FileReader(file));
    	//定义读取来的每一条学生信息
    	String stuinfo=null;
    	while((stuinfo=in.readLine())!=null) {
    		//解析String类型的学生信息成学生对象
    		studentList.add(jiexiStringStuInfo(stuinfo));
    	}
    	in.close();
    	}catch(Exception e) {
    		e.printStackTrace();
    	}
    }
    /**
               * 解析String类型的学生信息成学生对象
     * @return
     */
    public  Student jiexiStringStuInfo(String stuinfo) {
    	String stuarray[]=stuinfo.split("-");
    	Student student=new Student();
    	student.setStuid(Integer.parseInt(stuarray[0]));
    	student.setStuname(stuarray[1]);
    	student.setStuage(Integer.parseInt(stuarray[2]));
    	student.setStuaddress(stuarray[3]);
    	return student;
    }
    
    
    
	/**
	 * 添加学生信息的数据访问方法
	 */
	public  boolean insert(Student student) {
		//清空集合
		studentList.clear();
		//先添加数据到集合
		boolean flag=studentList.add(student);
		//将集合中的数据写入文件
		saveStudentInfoToFile(studentList);
		//清空集合
		studentList.clear();
		return flag;
	}
	/**
	 * 查询所有学生信息的数据访问方法
	 * @return
	 */
	public ArrayList selectAll() {
		//清空集合
		studentList.clear();
		readFileToList();
		return studentList;
	}
	/**
	 * 根据学号查询学生信息的数据访问方法
	 * @param stuid
	 * @return
	 */
	public Student selectByStuid(int stuid) {
		//清空集合
		studentList.clear();
		readFileToList();
		Student student=null;
		for(Object  obj:studentList) {
			Student stu=(Student)obj;
			if(stu.getStuid()==stuid) {
				student=stu;
				break;
			}
		}
		return student;
	}
	/**
	 * 根据学号修改学生信息数据访问方法
	 * @param student
	 * @param newStudent
	 * @return
	 */
	public boolean updateByStuid(Student student,Student newStudent) {
		//清空集合
		studentList.clear();
		readFileToList();
		Student newListstudent=selectByStuid(student.getStuid());
		Object obj=studentList.set(studentList.indexOf(newListstudent), newStudent);
		if(file.exists()) {
			file.delete();
		}
		saveStudentInfoToFile(studentList);
		if(obj!=null) {
			return true;
		}
		return false;
	}
	/**
	 * 根据学号删除学生信息数据访问方法
	 * @param student
	 * @return
	 */
	public boolean deleteByStuid(Student  student) {
		//清空集合
		studentList.clear();
		readFileToList();
		Student newListstudent=selectByStuid(student.getStuid());
		boolean flag=studentList.remove(newListstudent);
		if(file.exists()) {
			file.delete();
		}
		saveStudentInfoToFile(studentList);
		return flag;
	}
	/**
	 * 删除所有学生信息数据访问方法
	 * @return
	 */
	public boolean deleteAll() {
		boolean  flag =false;
		if(file.exists()) {
			flag=file.delete();
			try {
				file.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return flag;
	}
	
 }


StudentService.java

package com.lx.service;

import java.util.ArrayList;

import com.lx.bean.Student;
import com.lx.dao.StudentDao;
import com.lx.util.StudentHelper;

/**
 * 学生信息的业务访问类
 * @author Administrator
 *
 */
public class StudentService {
	
	/**
	 * 添加学生信息的具体业务处理方法
	 * @param student
	 */
	private void insertStudent(Student student) {
		StudentDao  studao=new StudentDao();
		boolean flag=studao.insert(student);
		if(flag) {
			System.out.println("学生信息添加成功!");
		}else {
			System.out.println("学生信息添加失败!");
		}
	}
	/**
	 * 查询所有学生信息的具体业务处理方法
	 */
	private void selectAllStudent() {
		StudentDao  studao=new StudentDao();
		ArrayList studentList=studao.selectAll();
		if(studentList.size()>0) {
		System.out.println("---------------------------");
		for(Object  obj:studentList) {
			Student stu=(Student)obj;
			System.out.println("--"+stu.getStuid()+"-"+
			stu.getStuname()+"-"+stu.getStuage()+"-"+stu.getStuaddress()+"--");
			System.out.println("---------------------------");
		}
		}else {
			System.out.println("---------------------------");
			System.out.println("----------没有记录!------------");
			System.out.println("---------------------------");
		}
	}
	/**
	 *  根据学号查询学生信息的具体业务处理方法
	 * @param stuid
	 */
	private void selectStudentByStuid(int stuid) {
		StudentDao  studao=new StudentDao();
		Student student=studao.selectByStuid(stuid);
		
		if(student!=null) {
			System.out.println("---------------------------");
			System.out.println("--"+student.getStuid()+"-"+
					student.getStuname()+"-"+student.getStuage()+"-"+student.getStuaddress()+"--");
			System.out.println("---------------------------");
		}else {
			System.out.println("---------------------------");
			System.out.println("----------没有记录!------------");
			System.out.println("---------------------------");
		}
	}
	/**
	 * 根据学号修改学生信息的具体业务处理方法
	 * @param stuid
	 */
	private void updateStudentByStuid(int stuid) {
		StudentDao  studao=new StudentDao();
		Student student=studao.selectByStuid(stuid);
		if(student!=null) {
			Student newStudent=StudentHelper.getInputStudent();
			boolean flag=studao.updateByStuid(student,newStudent);
			if(flag) {
				System.out.println("修改成功!");
			}else {
				System.out.println("修改失败!");
			}
		}else {
			System.out.println("---------------------------");
			System.out.println("----------没有记录!------------");
			System.out.println("---------------------------");
		}
	}
	/**
	 * 根据学号删除学生信息的具体业务处理方法
	 * @param stuid
	 */
	private void deleteStudentByStuid(int stuid) {
		StudentDao  studao=new StudentDao();
		Student student=studao.selectByStuid(stuid);
		if(student!=null) {
			boolean flag=studao.deleteByStuid(student);
			if(flag) {
				System.out.println("删除成功!");	
			}else {
				System.out.println("删除失败!");	
			}
		}else {
			System.out.println("---------------------------");
			System.out.println("----------没有记录!------------");
			System.out.println("---------------------------");
		}
	}
	/**
	 * 删除所有学生信息的具体业务处理方法
	 * @param stuid
	 */
	private void deleteAll() {
		StudentDao  studao=new StudentDao();
		boolean flag=studao.deleteAll();
		if(flag) {
			System.out.println("删除所有信息成功!");	
		}else {
			System.out.println("删除所有信息失败!");	
		}
	}
	/**
	 * 具体业务处理方法
	 * @param setvice_code 【键盘输入的具体操作编号】
	 */
	public  void  service(int setvice_code) {
		switch(setvice_code) {
		case 1:System.out.println("添加学生信息");
				insertStudent(StudentHelper.getInputStudent());
				break;
		case 2:System.out.println("查询所有学生信息");
				selectAllStudent();
				break;
		case 3:System.out.println("根据学号查询学生信息");
				selectStudentByStuid(StudentHelper.getIntValue("--请输入需要查询的学生学号:--"));
				break;
		case 4:System.out.println("根据学号修改学生信息");
				updateStudentByStuid(StudentHelper.getIntValue("--请输入需要修改的学生学号:--"));
				break;
		case 5:System.out.println("根据学号删除学生信息");
				deleteStudentByStuid(StudentHelper.getIntValue("--请输入需要删除的学生学号:--"));
				break;
		case 6:System.out.println("删除所有学生信息");
				deleteAll();
				break;
		case 0:System.out.println("退出系统");System.exit(0);break;
		
		}
	}
}

StudentMain.java

package com.lx.main;

import com.lx.service.StudentService;
import com.lx.util.StudentHelper;

public class StudentMain {

	public static void main(String[] args) {
		while(true) {
		StudentHelper.getMenu();
		int setvice_code=StudentHelper.getIntValue("-请输入对应的编号执行相应的具体操作:-");
		StudentService studentService=new StudentService();
		studentService.service(setvice_code);
		}
	}

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值