Windows Phone開發(28):隔離儲存B 轉:http://blog.csdn.net/tcjiaan/article/details/7436959

來源:互聯網
上載者:User

上一節我們聊了目錄的操作,這一節我們繼續來看看如何讀寫檔案。

首先說一下題外話,許多朋友都在搖擺不定,三心二意,其實這樣的學習態度是很不好的,如果你對Windows phone開發有興趣,如果你真想學習,你就應該一心一意,靜下心來學習。

如果你不喜歡Windows phone開發,那你不必要徘徊,你可以選擇IOS、Android或者其它平台。
只要你選擇了,你應該要相信你所選擇的,記得有一句話是這樣說的:選擇你所愛的,愛你所選擇的,雖然這個比方不大合適,但意思是相近的。

其實,說到底,不是編程有多麼難學,而很多半途而廢的,其根本問題就是學習態度,我們不應該說我們的長輩,像60、70後的這一輩人怎麼落後,怎麼跟不上時代了,對的,從知識的積累和技能上說,我們的長輩們的的確確跟不上時代了,但是,他們身上有一個優點,這個優點是我們80後,90後的年輕人身上所沒有的,那就是執著,敢於吃苦的精神,這是事實,希望各位朋友要正視這一點,人不怕缺點多,就怕你不敢面對你的缺點。

作為青春年少的我們,更應該有一種“敢於直面慘淡的人生,敢於正視淋漓的鮮血”的勇氣。

只要你喜歡,不用擔心Windows phone的未來,就好像當年你不必要擔心.NET的前途一個道理,也不要被一些新聞和評論嚇倒,作為理性的主體,我們更應該分辨真偽,許多新聞評論都是在誤導我們。
不要管它微軟動作慢不慢,市場目前是很小,但你知道,存在必有其價值,IT巨頭們都在激烈競爭,作為開發人員,我們只需要腳踏實地去學習。
最近,Google和甲骨文的員工在努力學習法律知識,而微軟的員工在努力學習市場營銷學,其實從這些現象我們知道,無論開源閉源,都各有優缺點,能在二者之間取得一個平衡,才是王道。

好了,廢話就說到這裡,今天的內容很簡單,所以我才說那麼多題外話,目的就是告訴各位WP開發人員,不要浮躁,只要你能把WP開發的技能練得出神入化,哪怕它市場很小,你也能賺大錢,馬寧就是一個成功案例。

隔離儲存的檔案讀寫與我們過去在其它.NET開發中的檔案讀寫是沒有區別的,只是在WP上我們用IsolatedStorageFileStream,而不是傳統的FileStream罷了,說白了,就是換了一個類名,所有操作都一樣,至於你信不信,反正我是信了。

現在,我用一個樣本來證明,讀寫檔案有多麼簡單。
建立一個項目,在首頁面上放一個文字框,用來輸入要寫入檔案的內容,放兩個按鈕,一個用於寫操作,一個用於讀操作,再放一個TextBlock,用於顯示從檔案讀入的內容。XAML布局如下所示。

 

[html] view plaincopyprint?

  1. <phone:PhoneApplicationPage   
  2.     x:Class="PhoneApp1.MainPage"  
  3.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  4.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  5.     xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"  
  6.     xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"  
  7.     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
  8.     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
  9.     mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"  
  10.     FontFamily="{StaticResource PhoneFontFamilyNormal}"  
  11.     FontSize="{StaticResource PhoneFontSizeNormal}"  
  12.     Foreground="{StaticResource PhoneForegroundBrush}"  
  13.     SupportedOrientations="Portrait" Orientation="Portrait"  
  14.     shell:SystemTray.IsVisible="True">  
  15.     <StackPanel>  
  16.         <StackPanel Margin="0,25" Orientation="Vertical">  
  17.             <TextBox Name="txtContent" HorizontalAlignment="Stretch" Height="185" ScrollViewer.VerticalScrollBarVisibility="Auto" TextWrapping="Wrap"/>  
  18.             <Button Name="btnWrite" HorizontalAlignment="Stretch" Height="auto" Content="將內容寫入到檔案" Click="btnWrite_Click"/>  
  19.         </StackPanel>  
  20.         <StackPanel Margin="0,25" Orientation="Vertical">  
  21.             <Button HorizontalAlignment="Stretch" Content="從檔案中讀入" Name="btnRead" Click="btnRead_Click"/>  
  22.             <TextBlock Name="txtDisplay" HorizontalAlignment="Stretch" Height="358" ScrollViewer.VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" FontSize="35"/>  
  23.         </StackPanel>  
  24.     </StackPanel>  
  25.   
  26. </phone:PhoneApplicationPage>  

 

後台C#如下所示。

[csharp] view plaincopyprint?

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Net;  
  5. using System.Windows;  
  6. using System.Windows.Controls;  
  7. using System.Windows.Documents;  
  8. using System.Windows.Input;  
  9. using System.Windows.Media;  
  10. using System.Windows.Media.Animation;  
  11. using System.Windows.Shapes;  
  12. using Microsoft.Phone.Controls;  
  13. // 引入此命名空間  
  14. using System.IO;  
  15. using System.IO.IsolatedStorage;  
  16.   
  17. namespace PhoneApp1  
  18. {  
  19.     public partial class MainPage : PhoneApplicationPage  
  20.     {  
  21.         // 常量  
  22.         const string MyDir = "MyData";  
  23.         const string testFileName = "file";  
  24.   
  25.         // 建構函式  
  26.         public MainPage()  
  27.         {  
  28.             InitializeComponent();  
  29.             this.Loaded += (sender, e) =>  
  30.                 {  
  31.                     using (var iso = IsolatedStorageFile.GetUserStoreForApplication())  
  32.                     {  
  33.                         if (iso.DirectoryExists(MyDir) == false)  
  34.                         {  
  35.                             iso.CreateDirectory(MyDir);  
  36.                         }  
  37.                     }  
  38.                 };  
  39.         }  
  40.   
  41.   
  42.         private void btnWrite_Click(object sender, RoutedEventArgs e)  
  43.         {  
  44.             using (var iso = IsolatedStorageFile.GetUserStoreForApplication())  
  45.             {  
  46.                 using (var sr = iso.CreateFile(MyDir + "\\" + testFileName))  
  47.                 {  
  48.                     StreamWriter sw = new StreamWriter(sr);  
  49.                     sw.Write(txtContent.Text);  
  50.                     sw.Close();  
  51.                     sw.Dispose();  
  52.                 }  
  53.             }  
  54.         }  
  55.   
  56.         private void btnRead_Click(object sender, RoutedEventArgs e)  
  57.         {  
  58.             using (var iso = IsolatedStorageFile.GetUserStoreForApplication())  
  59.             {  
  60.                 var sr = iso.OpenFile(MyDir + "\\" + testFileName, FileMode.Open, FileAccess.Read);  
  61.                 StreamReader reader = new StreamReader(sr);  
  62.                 string info = reader.ReadToEnd();  
  63.                 reader.Close();  
  64.                 reader.Dispose();  
  65.                 sr.Close();  
  66.                 sr.Dispose();  
  67.                 txtDisplay.Text = info;  
  68.             }  
  69.         }  
  70.     }  
  71. }  

 

上面的代碼,我想各位能看得懂的,是的,就是這麼簡單,現在你相信了吧。

來,看看運後的結果吧。

相關文章

聯繫我們

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