java 字符串系列化及反系列化

/**

* 字符串序列化

* @param str

* @return

*/

public static String compareSerialization(String str) {

String result = "";

try {

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);

objectOutputStream.writeObject(str);

result = byteArrayOutputStream.toString("ISO-8859-1");

result = java.net.URLEncoder.encode(result, "UTF-8");

objectOutputStream.close();

byteArrayOutputStream.close();

} catch (Exception e) {

e.printStackTrace();

}

return result;

}

/**

* 字符串反序列化

* @param serStr

* @return

*/

public static String deSerialization(String serStr) {

String result = "";

try {

result = java.net.URLDecoder.decode(serStr, "UTF-8");

ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(result.getBytes("ISO-8859-1"));

ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);

result = (String) objectInputStream.readObject();

objectInputStream.close();

byteArrayInputStream.close();

} catch (Exception e) {

e.printStackTrace();

} finally {

return result;

}

}

时间: 2024-10-11 10:19:18

java 字符串系列化及反系列化的相关文章

C#对泛型List<T>系列化与反系列化

练习一个小例子,在C#中,怎样对泛型List<T>数据集进行系列化与反系列化.我们先了解msdn提供的JavaScriptSerializer类: JavaScriptSerializer Class 创建一个类Product,它有几个属性: 现Insus.NET打开asp.net练习网站,就新建一个aspx,在Page_Load中,创建一个泛型List<T>,并填充一些数据: 接下来,我们可以使用Serialize和用Deserialize方法来对刚才创建好的数据集List<

利用集合和文件的系列,反系列化模拟实现数据的存储功能

package com.manage.tset; import java.io.File;import java.util.ArrayList; public interface IManageNewsInfo { //显示所有的新闻的信息的方法 ArrayList<NewsInfo> showAllNews() throws Exception; //实现添加新闻的方法 void addNews(NewsInfo news) throws Exception; //删除新闻的方法 boole

使用java中replaceAll方法替换字符串中的反斜杠

今天在项目中使用java中replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),结果出现如下的异常: 1 java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \^ 上网找了一下错误的原因:在regex中"\\"表示一个"\",在java中一个"\"也要用"\\"

关于java字符串编译优化问题

情景一:不好的字符串拼接习惯    起因是这样的:一个大牛在写了一篇关于java字符串优化问题的讲解,他提到:不要使用strObj+otherValue的方法将otherValue转换为字符串形式,因为底层操作会让你吓一跳的.那么底层的实质是怎么样的呢?他的意思是这样的: 比如:    String s = "I have"; int  total = 12; Dog dog = new Dog();     //假设Dog类重写了toString方法 String msg = s +

String.replaceAll()方法替换字符串中的反斜杠(\)

replaceAll()方法实际是采用正则表达式的规则去匹配的. 在regex中"\\"表示一个"\",在java中一个"\"也要用"\\"表示.这样,前一个"\\"代表regex中的"\",后一个"\\"代表java中的"\",所以字符串转义一次,正则转义一次,那么一个斜扛要写4个; 要想使用replaceAll()方法将字符串中的反斜杠(\)替

Java字符串学习笔记

通过看jdk源码发现Java字符串中有如下关系: 接口中的方法默认都是抽象的可以写也可以不写. public interface CharSequence { int length(); char charAt(int index); CharSequence subSequence(int start, int end); public String toString(); } 其他的都是该接口的实现类且是最终类,不能被继承. public final class String impleme

Java字符串

Java字符串 String对象是不可变的.String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的对象,以包含修改后的字符串.而最初的String对象则丝毫未动. import java.util.*; public class Immutable{ public static String upcase(String s){ return s.toUpperCase(); } public static void main(String[] args){ Strin

Java字符串转16 进制工具类Hex.java

原文:Java字符串转16 进制工具类Hex.java 源代码下载地址:http://www.zuidaima.com/share/1550463378410496.htm Java 字符串转 16 进制工具类 Hex.java 实现 16进制 0xfecd .. 和 java 字符串之间的互转换! 如果做开发,通常用户登陆密码都会 mad5(salt + pwd) 然后再将 md 之后的数据 hex 一下. 这个工具类,就是实现此效果的. /* * */ package com.zuidaim

图解Java字符串不变性

1. 声明字符串 String s = "abcd"; 这里,s存储了“abcd”在这个字符串对象的引用,如下图所示: 2. 将字符串变量s赋值给字符串变量s2 String s2 = s; 此时,s2也指向了“abcd”. 3. 字符串合并 s = s.concat("ef); 这里,明显是新创建了字符串对象“abcdef”,也就是说,在java中字符串对象一旦被创建就不会改变. 总结 在Java中,一旦一个字符串对象在内存中(通常在堆中)被创建,它就不会被改变.同时字符串