/
文件转化为Object
@param fileName
@return byte[]
/
public static Object file2Object(String fileName) {
FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fis = new FileInputStream(fileName);
ois = new ObjectInputStream(fis);
Object object = oisreadObject();
return object;
} catch (Exception e) {
eprintStackTrace();
} finally {
if (fis != null) {
try {
fisclose();
} catch (IOException e1) {
e1printStackTrace();
}
}
if (ois != null) {
try {
oisclose();
} catch (IOException e2) {
e2printStackTrace();
}
}
}
return null;
}
/
把Object输出到文件
@param obj
@param outputFile
/
public static void object2File(Object obj, String outputFile) {
ObjectOutputStream oos = null;
FileOutputStream fos = null;
try {
fos = new FileOutputStream(new File(outputFile));
oos = new ObjectOutputStream(fos);
ooswriteObject(obj);
} catch (Exception e) {
eprintStackTrace();
} finally {
if (oos != null) {
try {
oosclose();
} catch (IOException e1) {
e1printStackTrace();
}
}
if (fos != null) {
try {
fosclose();
} catch (IOException e2) {
e2printStackTrace();
}
}
}
}
/
如果是多个对象被序列化,那么在序列化文件中它应当是ArrayList。序列化可以是数组,那么
你反序列化自然是对象数组,在序列化是使用这种数组方式比单个序列化要合适。如果按照你的
这种写法,生成的序列化文件相当于一个table,反序列化时一次readObject()只能读一个对
象,下一个对象需要再写一次readObject(),这样一来需要一个循环,然后每次读到的对象放
入一个数组中,so非常麻烦。
/
java中从文件中读取对象,主要是使用ObjectInputStream的readObject方法来读取对象,如下代码:
public static Object readObjectFromFile(){
Object temp=null;
File file =new File("testdat");
FileInputStream in;
try {
in = new FileInputStream(file);
ObjectInputStream objIn=new ObjectInputStream(in);
temp=objInreadObject();//从文件当中读取对象
Set<Object> duixiang = new HashSet<Object>();
duixiangadd(temp);//添加对象到set集合里面
objInclose();
Systemoutprintln("read object success!");
} catch (IOException e) {
Systemoutprintln("read object failed");
eprintStackTrace();
} catch (ClassNotFoundException e) {
eprintStackTrace();
}
return temp;
}
java获得对象的方法
通过new关键字来进行获取对象。
如:Test test=new Test();
通过反射手段,调用javalangclass或者javalangreflectConstructor中的newInstance()进行获取对象。
如:Test test=(Test)Classforname("comtestTest")newInstance();
Test test=TestclassnewInstance();
通过反序列化获取对象
如:testInputStream textin = new ObjectInputStream(new FileInputStream ("testobj"));
Test test= (Test) inreadObject();
clone()克隆方法
Test test2=(Test)test1clone();
以上就是关于利用ObjectInputStream类中的readObject(),读取多个对象全部的内容,包括:利用ObjectInputStream类中的readObject(),读取多个对象、java如何从文件中读取对象并用set保存、java 获得对象几种方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)