文件输入与容器类泛型

题目、

创建Student 类 包含属性:学号,姓名,年龄。创建构造方法完成学生基本信息的初始化;对每一个属性添加相应的getXXX,setXXX方法;重写toString()方法。

1.txt文件中包含30个学生的基本信息(学号,姓名,年龄),每个属性值之间用tab分割。设计学生测试类StudentTest,创建一个Student对象数组stuinfo;从“1.txt”读出学生的基本信息后放入stuinfo数组;foreach遍历数组并将信息输出到显示器上。

把学生信息写入1.TXT文件

package javaTest;

import java.io.*;
import java.util.*;

public class Demo09 {
public static void main(String[] args) throws IOException {
	FileWriter fw=new FileWriter("E:\\文件\\大三上\\java\\1.txt");
	List<Studs> li=new ArrayList<Studs>();
	Studs[] ss=new Studs[30];
	ss[0]=new Studs("201410010040","zs",18);
	ss[1]=new Studs("201410010041","ls",19);
	ss[2]=new Studs("201410010042","ww",20);
	ss[3]=new Studs("201410010043","ml",19);
	ss[4]=new Studs("201410010044","cs",18);
	ss[5]=new Studs("201410010045","qr",20);
	ss[6]=new Studs("201410010046","ab",21);
	ss[7]=new Studs("201410010047","ac",22);
	ss[8]=new Studs("201410010048","ad",21);
	ss[9]=new Studs("201410010049","ae",20);
	ss[10]=new Studs("201410010050","bw",18);
	ss[11]=new Studs("201410010051","be",21);
	ss[12]=new Studs("201410010052","br",20);
	ss[13]=new Studs("201410010053","bt",19);
	ss[14]=new Studs("201410010054","cz",22);
	ss[15]=new Studs("201410010055","cq",20);
	ss[16]=new Studs("201410010056","cr",21);
	ss[17]=new Studs("201410010057","cy",20);
	ss[18]=new Studs("201410010058","cu",20);
	ss[19]=new Studs("201410010059","dq",18);
	ss[20]=new Studs("201410010060","dw",19);
	ss[21]=new Studs("201410010061","de",20);
	ss[22]=new Studs("201410010062","dr",21);
	ss[23]=new Studs("201410010063","dt",22);
	ss[24]=new Studs("201410010064","dy",21);
	ss[25]=new Studs("201410010065","ny",20);
	ss[26]=new Studs("201410010066","nu",18);
	ss[27]=new Studs("201410010067","ne",20);
	ss[28]=new Studs("201410010068","nr",20);
	ss[29]=new Studs("201410010069","my",18);

	
	//把数组元素传到list表中
    for(int i=0;i<ss.length;i++){
    	if(ss[i]!=null){
    		li.add(ss[i]);
    	}
    }
    //把list表中的元素写入到文件中
    for(int i=0;i<li.size();i++){
    	//输出到屏幕上
    	System.out.println(li.get(i));
    	fw.write(li.get(i).toString()+"\r\n");
    	}
    fw.flush();
    fw.close();
}
}
 class Studs{
	String id;
	String name;
	int age;
	public Studs(String id, String name, int age) {
		this.id = id;
		this.name = name;
		this.age = age;
	}
	@Override
	public String toString() {
		return  id + ", " + name + ", " + age;
	}
	
}

用泛型与容器类实现学生信息的增删查改

package javaTest;

import java.io.*;
import java.util.*;

public class Demo10 {
public static void main(String[] args) throws IOException {
	FileReader fr=new FileReader("E:\\文件\\大三上\\java\\1.txt");
	BufferedReader br=new BufferedReader(fr);
	ArrayList<Students> li=new ArrayList<Students>();
	Scanner sc=new Scanner(System.in);
	String str=null;
	//把文件中的数据传到LIST表中
	while((str=br.readLine())!=null){
		String ss[]=str.split(", ");
		li.add(new Students(ss[0],ss[1],Integer.parseInt(ss[2])));
	}
	//输出list表的数据
	for(Students i:li){
		System.out.println(i);
	}
	//增加学生信息
	System.out.println("请输入增加学生的id:");
	String id=sc.nextLine();
	System.out.println("请输入学生姓名:");
	String name=sc.nextLine();
	System.out.println("请输入学生年龄:");
	int age=sc.nextInt();
	li.add(new Students(id,name,age));
	//显示增加后的学生信息
	Iterator<Students> it1=li.iterator();
	while(it1.hasNext()){
		System.out.println(it1.next().toString());
	}
	//删除学生信息
	System.out.println("请输入要删除信息的学生id:");
	Scanner sc1=new Scanner(System.in);
	String id2=sc1.nextLine();
	Iterator<Students> it2=li.iterator();
	while(it2.hasNext()){
		Object ob=it2.next().id;
		if(id2.equals(ob)){
			it2.remove();
		}
	}
	//显示删除后的学生信息
	for(Students i:li){
		System.out.println(i);
	}
	//查找
	System.out.println("请输入你要找的学生id:");
	String no=sc1.nextLine();
	Iterator<Students> it3=li.iterator();
	while(it3.hasNext()){
		Object ob=it3.next().id;
		if(no.equals(ob)){
			System.out.println(it3.toString());
		}
	}
	//修改
	System.out.println("请输入你要修改的学生id:");
	String no2=sc1.nextLine();
	System.out.println("请输入该学生修改后的姓名:");
	String name2=sc1.nextLine();
	System.out.println("请输入该学生修改后的年龄");
	int ag=sc1.nextInt();
	ListIterator<Students> lit=li.listIterator();
	while(lit.hasNext()){
		Object ob=lit.next().id;
		if(no2.equals(ob)){
		 lit.set(new Students(no2,name2,ag));
		}
	}
	for(Students i:li){
		System.out.println(i);
	}
}
}
 class Students{
	String id;
	String name;
	int age;
	public Students(String id, String name, int age) {
		this.id = id;
		this.name = name;
		this.age = age;
	}
	@Override
	public String toString() {
		return  id + ", " + name + ", " + age;
	}
	
}

 

转载于:https://my.oschina.net/saysuqi/blog/807936

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值