多平台统一管理软件接口,如何实现多平台统一管理软件接口
280
2022-10-14
Java操作IO对象流进行数据的读写
对象的读写
使用ObjectInputStream和ObjectOutputStream读写对象(序列化与反序列化)。
只有字节流没有字符流
.类必须实现Serializable接口
给类加个序列化编号,给类定义一个标记,新的修改后的类还可以操作曾经序列化的对象
静态是不能被序列化的,序列化只能对堆中的进行序列化 ,不能对“方法区”中的进行序列化
不需要序列化的字段前加 transient
小例子:
先创建一个Dog对象并序列化:
package com.uwo9.test03;
import java.io.Serializable;
public class Dog implements Serializable {
private static final long serialVersionUID = 2809685095868158625L;
String name;
String color;
}
再创建一个Student对象并序列化:
package com.uwo9.test03;
import java.io.Serializable;
public class Student implements Serializable {
private static final long serialVersionUID = 9078616504949971001L;
static public String schoolName;
private transient String name;
private transient int age;
private double score;
private Dog dog;
public Student() {
super();
}
public Student(String name, int age, double score, Dog dog) {
super();
this.name = name;
this.age = age;
this.score = score;
this.dog = dog;
}
public String getName() {
returnYutTHzPIk name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Overridehttp://
public String toString() {
return "Student [name=" + name + ", age=" + age + ", score=" + score + "]";
}
}
将数据写入对象流并存入文件
package com.uwo9.test03;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Collections;
public class Test01 {
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "大黄";
dog.color = "Yellow";
Student student1 = new Student("学生1", 18, 99,dog);
Student student2 = new Student("学生2", 19, 99,dog);
Student student3 = new Student("学生3", 20, 99,dog);
Student.schoolName = "某某大学";
File file = new File("E:/Temp/Test1.txt");
ObjectOutputStream oos = null;
try {
oos = new ObjectOutputStream(new FileOutputStream(file));
//oos.writeObject(student);
ArrayList
Collections.addAll(arrayList, student1,student2,student3);
oos.writeObject(arrayList);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
从指定文件中读取对象
package com.uwo9.test03;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
public class Test02 {
public static void main(String[] args) {
// 从指定的文件中读取对象
File file = new File("E:/Temp/Test1.txt");
ObjectInputStream ois=null;
try {
ois = new ObjectInputStream(new FileInputStream(file));
// 读取对象
// Student stu = (Student)ois.readObject();
// System.out.println("读取到的数据为:"+stu);
@SuppressWarnings("unchecked")
ArrayList
for (Student student : arrayList) {
System.out.println(student);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally {
try {
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~