欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

文本读取

程序员文章站 2023-01-29 19:32:08
7、根据要求编写程序:(1)创建类Student,内含学号、姓名、年龄、班级等属性,重写父类的toString()方法,用于输出学生的信息;(2)建立测试类,建立Student类的对象数组stuArray,里面放置若干个学生对象,将数组中的数据依次写入文件stu.dat,然后读取该文件中的信息,依次还原出数组中各Student对象的信息。Student类package Topic7;import java.io.Serializable;public class Student implem...

7、根据要求编写程序:

(1)创建类Student,内含学号、姓名、年龄、班级等属性,重写父类的toString()方法,用于输出学生的信息;
(2)建立测试类,建立Student类的对象数组stuArray,里面放置若干个学生对象,将数组中的数据依次写入文件stu.dat,然后读取该文件中的信息,依次还原出数组中各Student对象的信息。

Student类

package Topic7;

import java.io.Serializable;

public class Student implements Serializable{
	String ID;
	String name;
	String age;
	String classString;
	public Student() {
		
	}
	public Student(String ID,String name,String age,String classString) {
		this.ID=ID;
		this.name=name;
		this.age=age;
		this.classString=classString;
	}
	public String toString() {
		return " [学号:" + ID + ",  姓名:" + name + ", 年龄:" + age + ",  班级:" + classString + "]";
	}	
}

主类

package Topic7;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;

public class test {
	public static void main(String[] args) throws Exception {
		
		Student[] stuArray = new Student[7];
		stuArray[0] = new Student("001", "aaa", "18", "jk1806");
		stuArray[1] = new Student("002", "bbb", "19", "jk1806");
		stuArray[2] = new Student("003", "ccc", "20", "jk1806");
		stuArray[3] = new Student("004", "ddd", "18", "jk1806");
		stuArray[4] = new Student("005", "eee", "21", "jk1806");
		stuArray[5] = new Student("006", "fff", "19", "jk1806");
		stuArray[6] = new Student("007", "ggg", "20", "jk1806");
		
		ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("stu.dat"));
		os.writeObject(stuArray);

		ObjectInputStream is = new ObjectInputStream(new FileInputStream("stu.dat"));

		Student[] stu = (Student[])is.readObject();//强制类型转换
		
		for(int i=0;i<stu.length;i++){
			System.out.println(stu[i]);
		}
		is.close();
		os.close();
	}
}

将读取到的内容进行打印
文本读取

注意:虽然从文本中读取到并打印出来的内容与写入文本时的内容一致,但是文本中的内容确是乱码的,原因是ObjectOutputStream.writeObject()的作用是把一个实例的对象以文件的形式保存到磁盘上,这个过程就叫Java对象的持久化。而这个文件是以二进制的形式编写的,当你用文本编辑器将它打开,这些二进制代码与某个字符集映射之后,显示出来的东西就成了乱码。
这个问题目前还没有解决,若有哪位大佬得以解决,希望可以在评论区说明一下。
文本读取

本文地址:https://blog.csdn.net/weixin_43406519/article/details/110194115

相关标签: java