在Pocket PC应用程序的开发领域,读写文件是一项重要的功能。其中读写文本文件和二进制文件是最常见的。下面就通过示例代码介绍如何利用.NET Compact Framework提供的类来实现对文本文件和二进制文件的读写。
System.IO命名空间的File和FileStream类,提供了多种创建和打开文件的方法。下面介绍其中几种常用的方法。
File类的CreateText方法可以创建或打开一个用于写入UTF-8编码的文本。如果指定的文件不存在,则创建该文件。如果指定已存在的文件,则打开该文件。以下代码演示如何调用该方法:
<group id="_x0000_s1047" style="WIDTH: 414pt; HEIGHT: 70.2pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" editas="canvas" coordorigin="2526,7642" coordsize="7200,1224"><lock v:ext="edit" aspectratio="t"></lock><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_s1048" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 1224px" o:preferrelative="f" type="#_x0000_t75"><font size="3"><font face="Times New Roman"><fill o:detectmouseclick="t"></fill><path o:extrusionok="t" o:connecttype="none"></path><lock v:ext="edit" text="t"></lock></font></font></shape><rect id="_x0000_s1049" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 1224px" fillcolor="#eaeaea" strokecolor="#eaeaea"><textbox style="mso-next-textbox: #_x0000_s1049"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">……<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">Dim sw As System.IO.StreamWriter<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">sw = System.IO.File.CreateText("\Program Files\My Directory\working.tmp")<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">……<p></p></font></span></p> </div> </td> </tr></tbody></table></textbox></rect><wrap type="none"></wrap><anchorlock></anchorlock></group>
第二种方法可以打开和自动创建文件。该方法由StreamWrite类提供。在创建StreamWriter实例的时候,只需简单地指明文件的完整路径。调用该方法的演示代码如下:
<group id="_x0000_s1044" style="WIDTH: 414pt; HEIGHT: 70.2pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" editas="canvas" coordorigin="2526,7642" coordsize="7200,1224"><lock v:ext="edit" aspectratio="t"></lock><shape id="_x0000_s1045" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 1224px" o:preferrelative="f" type="#_x0000_t75"><font size="3"><font face="Times New Roman"><fill o:detectmouseclick="t"></fill><path o:extrusionok="t" o:connecttype="none"></path><lock v:ext="edit" text="t"></lock></font></font></shape><rect id="_x0000_s1046" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 1224px" fillcolor="#eaeaea" strokecolor="#eaeaea"><textbox style="mso-next-textbox: #_x0000_s1046"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">……<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">Dim sw As System.IO.StreamWriter<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">sw = New System.IO.StreamWriter("\Program Files\My Directory\working.tmp")<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">……<p></p></font></span></p> </div> </td> </tr></tbody></table></textbox></rect><wrap type="none"></wrap><anchorlock></anchorlock></group>
FileStream类提供了另外一种常用方法。当创建该类的新实例时,只需简单地指明文件的完整路径,就可以打开和自动创建文件。以下是使用FileStream类的例子:
<group id="_x0000_s1041" style="WIDTH: 414pt; HEIGHT: 70.2pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" editas="canvas" coordorigin="2526,7642" coordsize="7200,1224"><lock v:ext="edit" aspectratio="t"></lock><shape id="_x0000_s1042" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 1224px" o:preferrelative="f" type="#_x0000_t75"><font size="3"><font face="Times New Roman"><fill o:detectmouseclick="t"></fill><path o:extrusionok="t" o:connecttype="none"></path><lock v:ext="edit" text="t"></lock></font></font></shape><rect id="_x0000_s1043" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 1224px" fillcolor="#eaeaea" strokecolor="#eaeaea"><textbox style="mso-next-textbox: #_x0000_s1043"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">……<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">Dim fs As System.IO.FileStream<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">fs = New System.IO.FileStream("data.tmp", IO.FileMode.OpenOrCreate)<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">……<p></p></font></span></p> </div> </td> </tr></tbody></table></textbox></rect><wrap type="none"></wrap><anchorlock></anchorlock></group>
在进行进一步介绍之前,需要介绍一下Reader类和Writer类。.NET Compact Framework提供了一套Reader类和Writer类,用于读写文本文件和二进制文件。其中TextReader和TextWriter方法用于向文件读写字符数据。StreamReader和StreamWriter类用于向文件读写经过特定编码的数据。BinaryReader和BinaryWriter类可以向文件读写二进制的数据。
每一个Reader类,分别按照各自的数据类型从文件读取数据。而Writer类则分别按照各自的数据类型向文件写入数据。
通过TextWriter、StreamWriter和BinaryWriter类可以实现对文件的写入操作。如果你希望向文件写入文本数据,则可以使用TextWriter或StreamWriter类。如表11-7列出了TextWriter或StreamWriter类的常用方法。
表11-7:TextWriter 和StreamWriter类的常用方法
方法 |
描述 |
Close |
关闭数据流。 |
Flush |
清除数据流缓冲区,将数据写入文件。 |
Write |
向数据流写入数据。 |
WriteLine |
向数据流写入以行终结符结尾的文本数据。 |
清单11-15演示使用StreamWriter类向文件写入简单的文本数据的示例。该示例首先创建一个StreamWriter类实例并打开working.tmp文件。在这个示例里有两次写入操作。第一次写入操作使用StreamWriter类的Write方法写入一个文本字符串。第二次写入操作使用StreamWriter类的WriteLine方法写入当前日期和时间。WriteLine方法自动插入行终结符。
清单11-15:使用StreamWriter类写文件
<group id="_x0000_s1038" style="WIDTH: 414pt; HEIGHT: 148.2pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" editas="canvas" coordorigin="2526,7642" coordsize="7200,2584"><lock v:ext="edit" aspectratio="t"></lock><shape id="_x0000_s1039" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 2584px" o:preferrelative="f" type="#_x0000_t75"><font size="3"><fill o:detectmouseclick="t"></fill><path o:extrusionok="t" o:connecttype="none"></path><lock v:ext="edit" text="t"></lock></font></shape><rect id="_x0000_s1040" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 2584px" fillcolor="#eaeaea" strokecolor="#eaeaea"><textbox style="mso-next-textbox: #_x0000_s1040"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">……<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">Dim sw As System.IO.StreamWriter<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">sw = New System.IO.StreamWriter("text.tmp")<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><p><font face="Times New Roman"></font></p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">sw.Write("</font></span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">该内容写入于:</span><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">")<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">sw.WriteLine(DateTime.Now)<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><p><font face="Times New Roman"></font></p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">sw.Close()<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">……<p></p></font></span></p> </div> </td> </tr></tbody></table></textbox></rect><wrap type="none"></wrap><anchorlock></anchorlock></group>
如果Pocket PC应用程序需要向文件写入指定类型的数据,随后从文件按照指定数据类型读取数据的话,应该使用BinaryWriter类。表11-8列出了BinaryWriter类的主要方法。
表11-8:BinaryWriter类的主要方法
方法 |
描述 |
Close |
关闭数据流。 |
Flush |
清除数据流缓冲区,将数据写入文件。 |
Seek |
设置在当前数据流的写入位置。 |
Write |
向数据流写入二进制数据。 |
使用BinaryWriter类的Write方法向文件写入数据。该方法支持大多数数据类型。Write方法也能够用于向文件批量写入数组数据。清单11-16 演示使用BinaryWriter类向文件写入一对不同类型的数据。
清单11-16:使用BinaryWriter类写文件
<group id="_x0000_s1035" style="WIDTH: 414pt; HEIGHT: 210.6pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" editas="canvas" coordorigin="2526,7642" coordsize="7200,3672"><lock v:ext="edit" aspectratio="t"></lock><shape id="_x0000_s1036" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 3672px" o:preferrelative="f" type="#_x0000_t75"><font size="3"><fill o:detectmouseclick="t"></fill><path o:extrusionok="t" o:connecttype="none"></path><lock v:ext="edit" text="t"></lock></font></shape><rect id="_x0000_s1037" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 3672px" fillcolor="#eaeaea" strokecolor="#eaeaea"><textbox style="mso-next-textbox: #_x0000_s1037"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">……<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">Dim bw As System.IO.BinaryWriter<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">Dim fs As System.IO.FileStream<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">Dim bolTemp As Boolean = True<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">Dim intTemp As Integer = 13<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><p><font face="Times New Roman"></font></p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">fs = New System.IO.FileStream("data.tmp", IO.FileMode.OpenOrCreate)<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">bw = New System.IO.BinaryWriter(fs)<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">bw.Write(bolTemp) ' </font></span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">写入一个布尔值</span><span lang="EN-US" style="FONT-SIZE: 9pt"><p></p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">bw.Write(intTemp) ' </font></span><span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">写入一个整形数字</span><span lang="EN-US" style="FONT-SIZE: 9pt"><p></p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><p><font face="Times New Roman"></font></p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">bw.Close()<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">……<p></p></font></span></p> </div> </td> </tr></tbody></table></textbox></rect><wrap type="none"></wrap><anchorlock></anchorlock></group>
这节开始介绍如何从文件读取数据。System.IO命名空间提供三种类:TextReader、StreamReader和BinaryReader。象Writer类一样,TextReader、StreamReader用于读取字符数据,BinaryReader类读取指定类型的数据。
表11-9列出了TextReader和StreamReader类的主要方法。其中几个方法都是用于读取数据的,而根本上的差别是返回的数据量不同。
表11-9:TextReader和StreamReader类的主要方法
方法 |
描述 |
Close |
关闭StreamReader并作用到文件。 |
Peek |
从数据流里读取下一个字符。 |
Read |
从数据流里读取下一个字符或多个字符。 |
ReadBlock |
从数据流里读取一批字符。 |
ReadLine |
从数据流里读取一行字符。 |
ReadToEnd |
读取从当前位置到数据流末端的数据。 |
以下代码演示如何使用StreamReader类从文件读取数据的简单示例。在该示例里,使用ReadToEnd 方法一次性读取文件全部内容,该方法常用于文本编辑器或其他与记事本相关的Pocket PC应用程序。如果你希望更多地控制读取数据的过程,则可以使用Read、ReadBlock或ReadLine方法。
<group id="_x0000_s1032" style="WIDTH: 414pt; HEIGHT: 117pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" editas="canvas" coordorigin="2526,7642" coordsize="7200,2040"><lock v:ext="edit" aspectratio="t"></lock><shape id="_x0000_s1033" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 2040px" o:preferrelative="f" type="#_x0000_t75"><font size="3"><font face="Times New Roman"><fill o:detectmouseclick="t"></fill><path o:extrusionok="t" o:connecttype="none"></path><lock v:ext="edit" text="t"></lock></font></font></shape><rect id="_x0000_s1034" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 2040px" fillcolor="#eaeaea" strokecolor="#eaeaea"><textbox style="mso-next-textbox: #_x0000_s1034"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">……<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">Dim sr As System.IO.StreamReader<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><p><font face="Times New Roman"></font></p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">sr = System.IO.File.OpenText("text.tmp")<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">MsgBox(sr.ReadToEnd)<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">sr.Close()<p></p></font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">……<p></p></font></span></p> </div> </td> </tr></tbody></table></textbox></rect><wrap type="none"></wrap><anchorlock></anchorlock></group>
虽然TextReader和StreamReader类能够很好的处理字符数据,但是如果希望Pocket PC应用程序能够处理数字类型的数据,则应该使用BinaryReader类。通过BinaryReader类,可以直接读取指定类型的数据,而无需任何进行数据转换。
BinaryReader类的主要方法如表11-10所示。Read方法实现读取批量数据,适用于BinaryReader类支持的所有数据类型。
表11-10:BinaryReader类的主要方法
方法 |
描述 |
Close |
关闭StreamReader并作用到文件。 |
PeekChar |
读取下一个字符而无需前移数据流中的位置。 |
Read |
从数据流读取数据。 |
ReadBoolean |
从数据流读取布尔数据。 |
ReadByte |
从数据流读取字节数据。 |
ReadBytes |
从数据流读取一批字节数据。 |
ReadChar |
从数据流读取一个字符。 |
ReadChars |
从数据流读取一批字符。 |
ReadDecimal |
从数据流读取十进制值。 |
ReadDouble |
从数据流读取8字节浮点值。 |
ReadInt16 |
从数据流读取一个有符号的2字节整数值。 |
ReadInt32 |
从数据流读取一个有符号的4字节整数值。 |
ReadInt64 |
从数据流读取一个有符号的8字节整数值。 |
评论