java對象---序列化與還原序列化,java對象---序列化

來源:互聯網
上載者:User

java對象---序列化與還原序列化,java對象---序列化

 

private static final String TEMP_ENCODING = "ISO-8859-1";
private static final String DEFAULT_ENCODING = "UTF-8";

/**
* 把java對象序列化成字串
* @param obj
* @return
* @throws IOException
*/
public static String writeToStr(Object obj) throws IOException {
// 此類實現了一個輸出資料流,其中的資料被寫入一個 byte 數組。
// 緩衝區會隨著資料的不斷寫入而自動成長。可使用 toByteArray() 和 toString() 擷取資料。
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// 專用於java對象序列化,將對象進行序列化
ObjectOutputStream objectOutputStream = null;
String serStr = null;
try {
objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(obj);
serStr = byteArrayOutputStream.toString(TEMP_ENCODING);
serStr = java.net.URLEncoder.encode(serStr, DEFAULT_ENCODING);
} catch (IOException e) {
e.printStackTrace();
} finally {
objectOutputStream.close();
}
return serStr;
}


/**
* 把字串還原序列化java對象
* @param serStr
* @return
* @throws IOException
*/
public static Object deserializeFromStr(String serStr) throws IOException {
ByteArrayInputStream byteArrayInputStream = null;
ObjectInputStream objectInputStream = null;
try {
String deserStr = java.net.URLDecoder.decode(serStr, DEFAULT_ENCODING);
byteArrayInputStream = new ByteArrayInputStream(deserStr.getBytes(TEMP_ENCODING));
objectInputStream = new ObjectInputStream(byteArrayInputStream);
return objectInputStream.readObject();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
objectInputStream.close();
byteArrayInputStream.close();
}
return null;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.