close

德拉瓦語翻譯

  物件序列化是一個快速又便利的物件狀態永遠保留法,它將物件 翻譯狀態(所有成員變數)貯存到檔案中。以下典範展示序列化(serialize)與反序列化(deserialize)。

From:Head First C# [Chapter 9] Reading and writing files

// 建立檔案串流(@ 可勾銷跳脫字元 escape sequence)
StreamWriter sw = new StreamWriter(@"C:\secret_plan.txt");
sw.WriteLine("write something");// 寫入文字
sw.Close();// 封閉串流

2. 讀取文字

Step1:將 OpenFileDialog 節制項拖曳到表單上

by autosun

  除了文字檔,我們也可能保存 int、float 等變數的數值或是 byte 資料,這時候利用二進制檔案(binary)就比力輕易了 翻譯社

Stream output = File.Create(file_name);
formatter.Serialize(output, objectToSerialize);
output.Close();

Step4:反序列化(deserialize)

Step2:成立序列化的串流

[Serializable]// *這一行很主要
class AnotherObj {}
class SomeObj {
public int x;// 該變數會被保存
public AnotherObj another;// 該物件也會被保存,但其種別需加上 [Serializable] 屬性(attribute)
}

Step1:引入 namespace

  檔案讀寫是程式設計師很常碰到 翻譯問題,在 C# 中與 Java 相同,不管是檔案讀寫、網路資料傳送、螢幕鍵盤輸收支都是以「串流(Stream)」的體例來告竣 翻譯社FileStream、MemoryStream、NetworkStream、GZipStream 等都繼續自 Stream 種別。在這個章節裡我們直接以典範來進修。

// 確立檔案串流(@ 可取消跳脫字元 escape sequence)
StreamReader sr = new StreamReader(@"C:\secret_plan.txt");
while (!sr.EndOfStream) {// 每次讀取一行,直到檔尾
string line = sr.ReadLine();// 讀取文字到 line 變數
}
sr.Close();// 關閉串流
Stream 類別實作了 IDisposable 介面!它具有 Dispose 方式,你可以呼喚 Dispose 關閉串流或者使用 using statement 翻譯社
using (StreamWriter sw = new StreamWriter(@"C:\secret_plan.txt")) {
...
}

  看到這裡是否是感覺太簡單了呢!等等呢,Visual C# 有一個 OpenFileDialog 的對話框可以用來選取檔案。下面就來看看怎麼使用吧!

拖曳新增後 OpenFileDialog 節制項會呈現在 Form Design 下方。在此我們假定該節制項定名 openFileDialog1 。

在 Form 底下撰寫 OpenFileDialog 翻譯控制碼 翻譯社

int value = 43;
using (FileStream output = File.Create("binarydata.dat")) {// 寫入整數值
BinaryWriter writer = new BinaryWriter(output);
writer.Write(value);
}
using (FileStream input = new FileStream(@"binarydata.dat", FileMode.Open)) {// 讀取整數值
BinaryReader reader = new BinaryReader(input);
int data = reader.ReadInt16();
}

  以上只針對最簡單的檔案讀寫來說明,其實不僅是檔案,包括網路串流、緊縮串流都是以近似的作法做輸收支,如欲深入瞭解請參閱其他書本或 MSDN。

。-> 翻譯社|,-> 翻譯公司|的-> 翻譯
BinaryFormatter formatter = new BinaryFormatter();

Step3:最先序列化(serialize)

Stream input = File.OpenRead(file_name);
SomeObj obj = (SomeObj)formatter.Deserialize(input);
input.Close();

四、二進制檔案讀寫

1、文字讀寫

1. 將文字寫入 C:\secret_plan.txt 中。

Step2:撰寫節制碼

bool b = File.Exists(file_name);// 鑒定檔案是不是存在
File.Create(file_name);// 設立建設檔案
string text = File.ReadAllText(file_name);// 讀取檔案內所有文字
File.WriteAllText(file_name 翻譯公司 text);// 將 text 寫入檔案

* File 種別還有良多方法,具體參考 Head First C#、其他書籍或 MSDN

2、File 種別 - 更快的方式來處置懲罰簡單的檔案治理

openFileDialog1.InitialDirectory = @"c:\MyFolder\Default\";// 檔案對話方框開啟 翻譯預設資料夾
// 設定可以選擇 翻譯檔案類型
openFileDialog1.Filter = "Text Files (*.txt)|*.txt|Comma-Delimited Files (*.csv)|*.csv|All Files (*.*)|*.*";
openFIleDialog1.CheckFileExists = true;// 若檔案/路徑 不存在是不是顯示錯誤訊息
openFIleDialog1.CheckPathExists = false;
DialogResult result = openFileDialog1.ShowDialog();// 顯示檔案對話方框並回傳狀況(DialogResult.OK、DialogResult.Cancel)
if (result == DialogResult.OK) {
// 操作檔案 openFileDialog1.FileName
}

除 OpenFileDialog 外,SaveFileDialog 的作法也是一樣的。

3、物件序列化(serialization)

在 .cs 檔前頭加上 using System.Runtime.Serialization.Formatters.Binary;



本文出自: http://blog.xuite.net/autosun/study/32576568-%5BC%23%5D+%E6%AA%94%E6%A1%88%E8%AE%80%E5%AF%AB有關翻譯的問題歡迎諮詢天成翻譯社

arrow
arrow
    文章標籤
    翻譯社
    全站熱搜

    ericksuh252k 發表在 痞客邦 留言(0) 人氣()