学生管理系统 保存到文件(io流)

要先创建文件,才能执行以下代码,否则会报文件找不到的异常。
我默认存放内容的文件路径是当前项目下:
在这里插入图片描述
当然也可以通过修改代码中main方法的filename修改文件路径。

操作效果如下:
在这里插入图片描述
文件存放内容如下:
在这里插入图片描述

代码如下:

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.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Scanner;

public class Student {
		private String age;
		private String name;
		private String id;
		private String address;
		
	public Student(String age, String name, String id, String address) {
			super();
			this.age = age;
			this.name = name;
			this.id = id;
			this.address = address;
		}

	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public static void findOutAll(String filename) throws Exception{
		ArrayList<Student> array=new ArrayList<Student>();
		readDate(filename, array);
		if(array.size()==0)
			System.out.println("该系统还没有学生");
		else {
			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"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress());
			}
		}
	}
	public static void writeDate(String filename,ArrayList<Student> array) throws IOException{
		BufferedWriter bw=new BufferedWriter(new FileWriter(filename));
		for(int i=0;i<array.size();i++){
			Student s=array.get(i);
			StringBuilder ch=new StringBuilder();
			ch.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getAddress()).append(",");
			bw.write(ch.toString());
			bw.newLine();
			bw.flush();
		}
		bw.close();
	}
	public static void readDate(String filename,ArrayList<Student> array) throws IOException{
		BufferedReader br=new BufferedReader(new FileReader(filename));
		String ch;
		while((ch=br.readLine())!=null){
			Student s=new Student();
			String[] sc=ch.split(",");
			s.setId(sc[0]);
			s.setName(sc[1]);
			s.setAge(sc[2]);
			s.setAddress(sc[3]);
			array.add(s);
		}
		br.close();
	}
	public static void addSomeone(String filename) throws IOException{
		ArrayList<Student> array=new ArrayList<Student>();
		readDate(filename, array);
		System.out.println("请输入你想加入学生的学号");
		Scanner scanner=new Scanner(System.in);
		String id=scanner.nextLine();
		boolean flag=false;
		for(int i=0;i<array.size();i++){
			Student s=array.get(i);
			if(s.getId().equals(id)){
				flag=true;
			}
		}
		if(flag)
			System.out.println("该系统已有此学生,请重新选择操作");
		else{
			System.out.println("请输入学生的姓名");
			String name=scanner.nextLine();
			System.out.println("请输入学生的年龄");
			String age=scanner.nextLine();
			System.out.println("请输入学生的地址");
			String address=scanner.nextLine();
			Student s=new Student();
			s.setId(id);
			s.setName(name);
			s.setAge(age);
			s.setAddress(address);
			array.add(s);
			writeDate(filename, array);
			System.out.println("已成功添加该学生!");
		}
		
	}
	public static void deleteSomeone(String filename) throws IOException{
		ArrayList<Student> array=new ArrayList<Student>();
		readDate(filename, array);
		System.out.println("请输入你想删除学生的学号");
		Scanner sc=new Scanner(System.in);
		String k=sc.nextLine();
		int index=-1;
		for(int i=0;i<array.size();i++){
			Student s=array.get(i);
			if(s.getId().equals(k))
				index=i;
		}
		if(index==-1)
			System.out.println("系统中不存在该学号的学生。");
		else {
			array.remove(index);
			writeDate(filename, array);
			System.out.println("已成功删除该学生!");
		}
	}
	public static void reviseSomeone(String filename) throws IOException {
		ArrayList<Student> array=new ArrayList<Student>();
		readDate(filename, array);
		System.out.println("请输入你要修改的学生学号");
		Scanner scanner=new Scanner(System.in);
		String id=scanner.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("请输入修改后的姓名");
			String name=scanner.nextLine();
			System.out.println("请输入修改后的年龄");
			String age=scanner.nextLine();
			System.out.println("请输入修改后的地址");
			String address=scanner.nextLine();
			Student s=new Student();
			s.setId(id);
			s.setName(name);
			s.setAge(age);
			s.setAddress(address);
			array.set(index,s);
			writeDate(filename, array);
			System.out.println("修改成功!");
		}
		else System.out.println("没有该学生");
	}
	public static void main(String[] args) throws Exception {
		//TODO:filename是文件存放路径
		String filename="text.txt";
		ArrayList<Student> array=new ArrayList<Student>();
		Scanner scanner=new Scanner(System.in);
		boolean flag=true;
		while(flag){
			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("请输入你的选择:");
			int k=scanner.nextInt();
			switch(k)
			{
			case 1:findOutAll(filename);break;
			case 2:addSomeone(filename);break;
			case 3:deleteSomeone(filename);break;
			case 4:reviseSomeone(filename);break;
			case 5:System.out.println("谢谢您的使用");flag=false;break;
			default:System.out.println("您的输入有误,请重新输入");flag=false;break;
			}
			}
}
}
1、把6个java文件保存到同一文件夹,例如C:\Student.然后将6个java文件分别编译生成相应的字节码(.class)文件,然后,用java 解释器运行主类:C:\Student\java StudentManager 2、使用jar.exe把一些文件压缩成JAR文件,来发布我们的应用程序。我们可以把本java应用程序涉及到的类文件(*.class)压缩成一个JAR文件,例如StudentManager.jar。 首先,用记事本编写一个清单文件(Manifestfiles): Manifest-Version: 1.0 Main-class: StudentManager Created-By: 1.2.2(Sun Microsystems Inc.) 例如,清单文件命名为moon.mf,保存到C:\Student。 注意:在编写清单文件时,在“Manifest-Version:”和“1.0”之间,“Main-class:”和“StudentManager”之间,以及在“Created-By:”和“1.2.2(Sun Microsystems Inc.)”之间必须有且只有一个空格。 然后,如下生成JAR文件: C:\Student\jar cvfm StudentManager.jar moon.mf *.class 其,参数C表示要生成一个新的JAR文件;f表示要生成的JAR文件的名字,m表示文件清单文件的名字,v表示生成详细输出到标准输出上。具体运行jar命令请查看 现在就可以将StudentManager.jar拷贝到任何一个安装了java运行环境(jdk版本号须高于1.2.2)的计算机上,只要鼠标双击StudentManager.jar文件就可以运行该java应用程序了。 注意在装了WinRAR解压缩软件的机子上可能不能运行,因此,在发布本系统时,还应该建立一个有如下内容的.bat文件(StudentManager.bat),用记事本编写: javaw -jar StudentManager.jar 保存即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值