SCNU_Java作业_主题8 :Java中的 IO及应用 基础作业:设计程序 实现磁盘文件IO操作(第二题)

2、创建编写一个User类(id ,name,gender, toString()),创建10User类的对象,然后通过输出流把对象写到盘 users.dat 文件中,然后在通过输入流把保存在users.dat文件中对象读取出来,并在控制台打印输出每个对象的信息。

参考代码:
参考一:如何插入空行
参考二:如何构造类成员对象(我参考我自己,笑死)
参考三:如何从键盘读取数据到文件里面

package work2;

import java.io.File;
import java.io.FileInputStream;

import java.io.FileOutputStream;
import java.io.IOException;


public class User {
	private String id;
	private String name;
	private String gender;
	public User(String id, String name, String gender) {
		super();
		this.id = id;
		this.name = name;
		this.gender = gender;
	}
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", gender=" + gender + "]";
	}

	public static void main(String[] args) throws IOException {
		User[] myUser = new User[10];
		//数学大创人员
		myUser[0] = new User("0","wzh","男");
		myUser[1] = new User("1","wjy","男");
		myUser[2] = new User("2","qns","女");
		myUser[3] = new User("3","lct","女");
		myUser[4] = new User("4","nzq","女");
		myUser[5] = new User("5","lzm","女");
		
		File f = new File("d:/kk/users.dat");
		FileOutputStream fout = new FileOutputStream(f);
		
		//用于空行,即给每个成员回车,不然那会挤在一起,没有分行
		byte[] line = null;
		line = "\r\n".getBytes();
		
		for(int i=0; i<6; i++) {//这里不知道怎么描述User的长度,只能用数字6来控制
			fout.write(myUser[i].toString().getBytes());//写入文件
			fout.write(line);//写完一个成员信息,立马写入回车
		}
		
		FileInputStream fin = new FileInputStream(f);
		byte[] b = new byte[1024];
		int len = fin.read(b);
		String s = new String(b, 0, len);//把文件里面的数据转化为字符串来输出
		System.out.println("读到的内容:");
		System.out.println(s);
		
		fin.close();
		fout.flush();
		fout.close();
	}

}

本来问同学的,同学也不会,只能自己硬刚,最后读取文件里面的数据感觉不太靠谱,直接转化为字符串输出。

你可能感兴趣的:(Java,java,开发语言,后端)