wp8.1 Study11:APP裡檔案讀寫和使用XML和Json序列化

來源:互聯網
上載者:User

標籤:des   style   blog   io   ar   color   os   使用   sp   

一、檔案讀寫

1、基本操作(使用FileIO API)

  這個方法在上一個stduy已經學過,那麼貼出來複習下,代碼如下:

private async void writeTextToLocalStorageFile(string filename, string text)        {            var fold = Windows.Storage.ApplicationData.Current.LocalFolder;//開啟檔案夾            StorageFile file = await fold.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);//建立個檔案            await FileIO.WriteTextAsync(file, text);//在檔案裡面寫內容        }        private async Task<string> readTextFromLocalStorage(string filename)        {            var fold = Windows.Storage.ApplicationData.Current.LocalFolder;//開啟檔案夾            StorageFile file = await fold.GetFileAsync(filename);//開啟對應的檔案            string result = await FileIO.ReadTextAsync(file);//讀取檔案裡面的內容            return result;        }

  NOTE:所有的檔案操作是非同步

2、使用流(stream)操作

  我們也可以建立一個流,利用它進行讀取和寫入操作。它可以被使用在所有的WinRT上。

進行寫操作,代碼如下:

        StreamWriter writeStream = null;        private async void openLocalStorageFile(string filename)//開啟檔案流        {            if (writeStream != null) return;            StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;            Stream baseStream = await localFolder.OpenStreamForWriteAsync(filename, CreationCollisionOption.OpenIfExists);            writeStream = new StreamWriter(baseStream);        }        private async void closeLocalStorageFile()//關閉檔案流        {            if (writeStream == null) return;            await writeStream.FlushAsync();            writeStream.Dispose();            writeStream = null;        }        private async void writeLine(string text)//寫資料到檔案流中        {            await writeStream.WriteAsync(text + "\n");        }

 

二、使用XML、JSON 序列化(serializer)

  通過之前的學習,我們已經很容易讀寫一些設定儲存和文本,然而使用XML、JSON 序列化,我們也可以十分簡單地儲存物件。在Windows Phone上的序列化庫,使我們非常容易儲存結構化資料。應用程式可以序列化資料成XML或JSON格式,而且這些資料將被儲存或轉化為文本。

1、序列化規則

  • XML序列化要求的對象必須有一個無參數的建構函式。
  • 私人和靜態成員將不會被儲存。
  • 如果你在應用程式更新時在相應的類中添加了成員,那麼在恢複使用之前的類定義的序列化的資料檔案時,應用程式將會出現錯誤。

2、使用JSON序列化

  下面把一個Customers對象序列化了,把資料轉化成了JSON檔案儲存。

  寫操作:

using (Stream stream = await notesFolder.OpenStreamForWriteAsync(filename,     CreationCollisionOption.OpenIfExists)){    DataContractJsonSerializer serializer =         new DataContractJsonSerializer(typeof(Customers));    serializer.WriteObject(stream, customers);

    await stream.FlushAsync();

    stream.Dispose();

}

  讀操作:

using (Stream stream = await notesFolder.OpenStreamForReadAsync(filename)){    DataContractJsonSerializer serializer =         new DataContractJsonSerializer(typeof(Customers));    Customers result = serializer.ReadObject(stream) as Customers;
   stream.Dispose();//釋放資料流}

3、使用XML序列化

操作與JSON序列化類別似,下面代碼如下:

寫操作:

XmlSerializer serializer = new XmlSerializer(typeof(Customers));serializer.Serialize(stream, customers);

讀操作:

XmlSerializer serializer = new XmlSerializer(typeof(Customers));Customers result = serializer.Deserialize(stream) as Customers;

 

知識學習分享~~~小白一個,以上資料基本是翻譯channel9裡面的相關課程。

wp8.1 Study11:APP裡檔案讀寫和使用XML和Json序列化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.