⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filetest.java

📁 基础性的JAVA源代码
💻 JAVA
字号:
package exec.day1016;
import java.io.*;
import java.util.*;
public class FileTest {
	private HashSet allCourses;//所有的课程对象
	private HashSet allStudents;//所有的学生对象
	public FileTest(){
		allCourses = new HashSet();
		allStudents = new HashSet();
	}
	public static void main(String args[]){
		FileTest t = new FileTest();
		String courseName = "D:\\corejava\\1016\\course.txt";
		String stuName = "D:\\corejava\\1016\\student.txt";
		t.readFile(Course.class, courseName);
		t.readFile(Student.class, stuName);
		//遍历课程集合
		for(Object obj:t.allCourses){
			System.out.println(obj);
		}
		//遍历学生集合
		for(Object obj:t.allStudents){
			System.out.println(obj);
		}
		String writeFile = "D:\\corejava\\1016\\selected.txt";
		t.writeFile(writeFile);
	}
	/**
	 * 按要求的格式写入文件
	 * 学生姓名:选课名称1,选课名称2,...
	 * @param fileName
	 */
	public void writeFile(String fileName){
		try {
			PrintStream ps = new PrintStream(fileName);
			//遍历学生集合,获取学生姓名及选修的课程
			for(Object obj:allStudents){
				Student s = (Student)obj;
				ps.print(s.getName()+": ");
				//遍历选修的课程,获取每个课程名称
				for(Object o:s.getSelectedCourses()){
					Course c = (Course)o;
					ps.print(c.getName()+",");
				}
				ps.println();
			}
			ps.flush();
			ps.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 读取文件
	 * @param c 哪一个文件
	 * @param fileName 文件名称
	 */
	public void readFile(Class c,String fileName){
		BufferedReader br = null;
		try {
			br = new BufferedReader(
					new InputStreamReader(
							new FileInputStream(fileName)));
			String s = null;
			while((s=br.readLine())!=null){
				if(s.equals("")){
					continue;
				}
				if(c==Course.class){
					//获取课程对象,并添加到集合中
					Course course = parseCourse(s);
					allCourses.add(course);
				}
				if(c==Student.class){
					allStudents.add(parseStudent(s));
				}
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally{
			try {
				if(br!=null)br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	/**
	 * 对读取到的课程文件的一行进行解析,获取课程对象
	 * 例如:001:UNIX:4
	 * @param str
	 * @return
	 */
	public Course parseCourse(String str){
		String s[] = str.split(":");
		return new Course(s[0],s[1],Integer.parseInt(s[2]));
	}
	
	/**
	 * 对读取到的学生文件的一行进行解析,并获取学生对象
	 * 例如:001:陈飞志:计算机大专:001,002,003,004,005
	 * @param str
	 * @return
	 */
	public Student parseStudent(String str){
		//获取通过:分割的学生属性子字符串
		String s[] = str.split(":");
		//构建学生对象
		Student student = new Student(s[0],s[1],s[2]);
		//获取通过,分割的课程编号子字符串
		String ss[] = s[3].split(",");
		//遍历数组,为学生添加选修的课程
		for(String number:ss){
			//遍历从课程文件中读取的所有课程对象的集合
			for(Object obj:allCourses){
				Course c = (Course)obj;
				if(number.equals(c.getNumber())){
					student.addCourse(c);
					break;
				}
			}
		}
		return student;
	}

}







⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -