java如何读取学生信息_[Java]班级学生信息写入文件和从文件中读出 - 代码贴 - BCCN...

package QQ9_20;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.Serializable;

import java.util.ArrayList;

import java.util.List;

// 班级类

class MyClass implements Serializable{

private String cname;

private List ss;

public MyClass() {

}

public MyClass(String cname, List ss) {

this.cname = cname;

this.ss = ss;

}

public void setCname(String cname) {

this.cname = cname;

}

public String getCname() {

return cname;

}

public void setSs(List ss) {

this.ss = ss;

}

public List getSs() {

return ss;

}

/*public String toString(){

return \t"+this.ss;

}*/

}

// 学生类

class Student extends MyClass implements Serializable{

private int sid;

private String sname;

private int age;

public Student() {

}

public Student(int sid, String sname, int age) {

this.sid = sid;

this.sname = sname;

this.age = age;

}

public void setSid(int sid) {

this.sid = sid;

}

public int getSid() {

return sid;

}

public void setSname(String sname) {

this.sname = sname;

}

public String getSname() {

return sname;

}

public void setAge(int age) {

this.age = age;

}

public int getAge() {

return age;

}

// 显示信息

public String toString() {

return this.getSid() + "\t" + this.getSname() + "\t" + this.getAge();

}

}

public class 班级信息处理 {

static void AddInform() {

// 建立班级对象并建立两个List

List lis1 = new ArrayList();

List lis2 = new ArrayList();

// 建立学生类的对象,并且将其传入List中

Student st1 = new Student(23, "陶辉", 15);

Student st2 = new Student(9, "周露康", 13);

Student st3 = new Student(5, "简小华", 13);

Student st4 = new Student(15, "周露霞", 14);

Student st5 = new Student(34, "肖佳鑫", 14);

lis1.add(st1);

lis1.add(st2);

lis2.add(st3);

lis2.add(st4);

lis2.add(st5);

MyClass mc1 = new MyClass("初三(1)班", lis1);

MyClass mc2 = new MyClass("初三(2)班", lis2);

//将班级信息建立List

List mylis = new ArrayList();

mylis.add(mc1);

mylis.add(mc2);

// 将信息写入文件中

/*try {

InputTheFile(mylis);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}*/

// 将信息从文件中读出来

try {

try {

List mylis2 = OutputTheFile();

for (MyClass mc:mylis2){

//输出班级名

System.out.println(mc.getCname());

//输出班级中学生的信息

for(Student ST:mc.getSs()){

System.out.println(ST.toString());

}

}

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

static void InputTheFile(List mylis) throws IOException{

//建立文件与数据的关系 并且将其序列化

FileOutputStream fos = new FileOutputStream("c:\\classinform.txt");

ObjectOutputStream oos = new ObjectOutputStream(fos);

oos.writeObject(mylis);

System.out.println("信息成功地写入了文件中!");

oos.close();

fos.close();

}

static List OutputTheFile() throws IOException, ClassNotFoundException

{

FileInputStream fos = new FileInputStream("c:\\classinform.txt");

ObjectInputStream oos = new ObjectInputStream(fos);

List mylis = new ArrayList();

// MyClass MC = new MyClass();

try{

while(true){

MyClass MC = (MyClass)oos.readObject();

mylis.add(MC);

}

}catch(Exception e){

}

finally{

oos.close();

fos.close();

}

System.out.println("文件读取成功!");

return mylis;

}

public static void main(String[] args) {

AddInform();

}

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值