利用ObjectInputStream类中的readObject(),读取多个对象

利用ObjectInputStream类中的readObject(),读取多个对象,第1张

/

文件转化为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 获得对象几种方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10137826.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存