栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java 如何将对象序列化为字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 如何将对象序列化为字符串

你应该使用BLOB。使用JDBC非常简单。

你发布的第二个代码的问题是编码。你还应该对字节进行编码,以确保它们均不会失败。

如果你仍然想将其记录为字符串,则可以使用java.util.base64对字节进行编码。

仍然应该将CLOB用作数据类型,因为你不知道序列化数据将持续多长时间。

这是一个如何使用它的示例。

import java.util.*;import java.io.*;public class ToStringSample {    public static void main( String [] args )  throws IOException,          ClassNotFoundException {        String string = toString( new SomeClass() );        System.out.println(" Enpred serialized version " );        System.out.println( string );        SomeClass some = ( SomeClass ) fromString( string );        System.out.println( "nnReconstituted object");        System.out.println( some );    }       private static Object fromString( String s ) throws IOException ,ClassNotFoundException {        byte [] data = base64.getDeprer().depre( s );        ObjectInputStream ois = new ObjectInputStream(        new ByteArrayInputStream(  data ) );        Object o  = ois.readObject();        ois.close();        return o;   }        private static String toString( Serializable o ) throws IOException {        ByteArrayOutputStream baos = new ByteArrayOutputStream();        ObjectOutputStream oos = new ObjectOutputStream( baos );        oos.writeObject( o );        oos.close();        return base64.getEnprer().enpreToString(baos.toByteArray());     }} class SomeClass implements Serializable {    private final static long serialVersionUID = 1; // See Nick's comment below    int i    = Integer.MAX_VALUE;    String s = "ABCDEFGHIJKLMNOP";    Double d = new Double( -1.0 );    public String toString(){        return  "SomeClass instance says: Don't worry, "    + "I'm healthy. Look, my data is i = " + i     + ", s = " + s + ", d = " + d;    }}

输出:

C:samples>javac *.javaC:samples>java ToStringSampleEnpred serialized versionrO0ABXNyAAlTb21lQ2xhc3MAAAAAAAAAAQIAA0kAAWlMAAFkdAASTGphdmEvbGFuZy9Eb3VibGU7TAABc3QAEkxqYXZhL2xhbmcvU3RyaW5nO3hwf////3NyABBqYXZhLmxhbmcuRG91YmxlgLPCSilr+wQCAAFEAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cL/wAAAAAAAAdAAQQUJDREVGR0hJSktMTU5PUA==Reconstituted objectSomeClass instance says: Don't worry, I'm healthy. Look, my data is i = 2147483647, s = ABCDEFGHIJKLMNOP, d = -1.0

注意:对于Java 7和更早版本,你可以在此处看到原始答案



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441836.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号