Java,C#使用二進(jìn)制序列化、反序列化操作數(shù)據(jù)
java使用二進(jìn)制序列化、反序列化的操作首先,要引入java.io下面相關(guān)包,或者直接寫import java.io.*;
下面,為了書寫操作的方便,采用復(fù)制文件,和throws聲明異常的方式來寫
public void test6() throws IOException {
byte[] b = new byte[1024];//定義字節(jié)數(shù)組,緩沖
FileInputStream in = new FileInputStream("E:\\logo.gif");//創(chuàng)建輸入流對象
FileOutputStream out = new FileOutputStream("E:\\My.gif");//創(chuàng)建輸出流對象
DataInputStream input = new DataInputStream(in);//創(chuàng)建輸入二進(jìn)制流
DataOutputStream dout = new DataOutputStream(out);//創(chuàng)建輸出二進(jìn)制流
int num = input.read(b);// 讀取二進(jìn)制文件到b中
while (num != -1) {
dout.write(b, 0, num);// 將讀取到的數(shù)組寫入到輸出流
num = input.read(b);// 重新再次讀取
}
// 按順序關(guān)閉所有流對象
input.close();
dout.close();
in.close();
out.close();
System.out.println("復(fù)制成功!");
}
初略代碼,僅供參考!
C#使用二進(jìn)制序列化、反序列化的操作首先,引入命名空間using System.Runtime.Serialization.Formatters.Binary;用以操作序列化和反序列化
還有,在牽涉到序列化的自定義類的類上方加上一個指示類[Serializable]
示例:
[Serializable]
public class PlayManager
{
/// <summary>
/// 序列化保存數(shù)據(jù)
/// </summary>
public void Save()
{
FileStream fs = null;
try
{
fs = new FileStream("保存文件的路徑", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, 要保存的對象);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
fs.Close();
}
/// <summary>
/// 加載序列化信息
/// </summary>
public void Load()
{
FileStream fs = null;
try
{
fs = new FileStream("文件路徑", FileMode.OpenOrCreate);
BinaryFormatter bf = new BinaryFormatter();
對象接收= (對象的類型)bf.Deserialize(fs); //強(qiáng)制類型轉(zhuǎn)換
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
fs.Close();
}
這就是在C#中序列化文件的使用,其實(shí)這個挺簡單的,如果不加try-catch-finally也就四句代碼,
過往的朋友們你們看明白了嗎?不明白的還可以提問哦!
相關(guān)文章
java ant 配置及構(gòu)建項(xiàng)目圖文教程
以下是對java ant配置及構(gòu)建項(xiàng)目進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-08-08Java并發(fā)系列之AbstractQueuedSynchronizer源碼分析(共享模式)
這篇文章主要為大家詳細(xì)介紹了Java并發(fā)系列之AbstractQueuedSynchronizer源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02Flutter 通過Clipper實(shí)現(xiàn)各種自定義形狀的示例代碼
這篇文章主要介紹了Flutter 通過Clipper實(shí)現(xiàn)各種自定義形狀的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Java通過SMS短信平臺實(shí)現(xiàn)發(fā)短信功能 含多語言
這篇文章主要為大家詳細(xì)介紹了Java通過SMS短信平臺實(shí)現(xiàn)發(fā)短信功能的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-07-07Spring中的@Scheduled定時任務(wù)注解詳解
這篇文章主要介紹了Spring中的@Scheduled定時任務(wù)注解詳解,要使用@Scheduled注解,首先需要在啟動類添加@EnableScheduling,啟用Spring的計(jì)劃任務(wù)執(zhí)行功能,這樣可以在容器中的任何Spring管理的bean上檢測@Scheduled注解,執(zhí)行計(jì)劃任務(wù),需要的朋友可以參考下2023-09-09java 關(guān)鍵字static詳細(xì)介紹及如何使用
這篇文章主要介紹了java 關(guān)鍵字static詳細(xì)介紹及如何使用的相關(guān)資料,需要的朋友可以參考下2017-03-03詳解SpringBoot 創(chuàng)建定時任務(wù)(配合數(shù)據(jù)庫動態(tài)執(zhí)行)
本篇文章主要介紹了SpringBoot 創(chuàng)建定時任務(wù)(配合數(shù)據(jù)庫動態(tài)執(zhí)行),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10Spring Boot使用過濾器和攔截器分別實(shí)現(xiàn)REST接口簡易安全認(rèn)證示例代碼詳解
這篇文章主要介紹了Spring Boot使用過濾器和攔截器分別實(shí)現(xiàn)REST接口簡易安全認(rèn)證示例代碼,通過開發(fā)實(shí)踐,理解過濾器和攔截器的工作原理,需要的朋友可以參考下2018-06-06Java流程控制之循環(huán)結(jié)構(gòu)for,增強(qiáng)for循環(huán)
這篇文章主要介紹了Java流程控制之循環(huán)結(jié)構(gòu)for,增強(qiáng)for循環(huán),for循環(huán)是編程語言中一種循環(huán)語句,而循環(huán)語句由循環(huán)體及循環(huán)的判定條件兩部分組成,其表達(dá)式為:for(單次表達(dá)式;條件表達(dá)式;末尾循環(huán)體){中間循環(huán)體;},下面我們倆看看文章內(nèi)容的詳細(xì)介紹2021-12-12Java 對象序列化 NIO NIO2詳細(xì)介紹及解析
這篇文章主要介紹了Java 對象序列化 NIO NIO2詳細(xì)介紹及解析的相關(guān)資料,序列化機(jī)制可以使對象可以脫離程序的運(yùn)行而對立存在,需要的朋友可以參考下2017-02-02