一、二進制文件讀寫
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),郊區(qū)企業(yè)網(wǎng)站建設(shè),郊區(qū)品牌網(wǎng)站建設(shè),網(wǎng)站定制,郊區(qū)網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,郊區(qū)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
1、寫二進制數(shù)據(jù)到指定目錄
==將barray字節(jié)數(shù)組中的數(shù)據(jù)創(chuàng)建在strFilename目錄文件下,存儲格式為二進制,F(xiàn)alse表示不添加,直接覆蓋創(chuàng)建。
2、從指定路徑下讀取二進制數(shù)據(jù)到數(shù)組
==將目錄中的文件讀取到barry字節(jié)數(shù)組中,即讀取二進制文件。
二、字符文件的讀寫
1、 將txtFile控件中的字符寫到srtFileName指定目錄,以創(chuàng)建方式。
2、從srtFileName目錄中的文件讀取到txtFile控件
VB.NET打開二進制文件用fileopen完成,打開二進制文件的形式為:openmode.binary
讀取二進制文件用的是fileget方法,寫入二進制文件用的是fileput方法。
應(yīng)用示例:將一批隨機數(shù)保存在一個dat文件中,然后再將其提取到文本框中。
二進制文件的讀寫一批隨機數(shù)的存取,程序為:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x, i, fn As Integer
Dim s As String = ""
fn = FreeFile()
FileOpen(fn, "d:\data.dat", OpenMode.Binary)
For i = 1 To 8
x = Int(Rnd() * 100)
s = s + Str(x)
FilePut(fn, x)
Next
FileClose(fn)
TextBox1.Text = s
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim x, fn As Integer
Dim s As String = ""
fn = FreeFile()
FileOpen(fn, "d:\data.dat", OpenMode.Binary)
Do While Not EOF(fn)
FileGet(fn, x)
s = s + Str(x) + " "
Loop
FileClose(fn)
TextBox1.Text = s
End Sub
本示例闡釋二進制文件的基本輸入和輸出(使用 BinaryReader、BinaryWriter 和 FileStream 類。 在如何創(chuàng)建日志文件標(biāo)題下面有一個類似的主題。讀寫二進制信息使您可以創(chuàng)建和使用通過其他輸入和輸出方法無法訪問的文件。本示例還展示寫入非字符串?dāng)?shù)據(jù),并展示二進制 I/O 的功能。
盡管計算機上的文件可以不同的類型和文件存儲,但是,二進制格式是文件的較常用格式之一。此處對創(chuàng)建二進制文件的簡短介紹使用基類 BinaryReader 和 BinaryWriter 從文件獲取信息,并將信息放入文件。這些類中的每個類均封裝一個信息流,因此,在進一步操作之前,需要創(chuàng)建一個可用于來回寫信息的流。因為要創(chuàng)建文件,所以可使用 FileStream 來公開特定文件,在此情況下,如果該文件已存在,則可以修改該文件,或者如果該文件尚不存在,則可以創(chuàng)建該文件。在有 FileStream 之后,可以使用它來構(gòu)造 BinaryReader 和 BinaryWriter
在讀入信息之后,可以對信息進行所需的任何操作。但是,在某些時候,您可能想要將信息寫回文件,因此需要 BinaryWriter。在本示例中,您將使用 Seek 方法將信息追加到文件結(jié)尾,因此,在開始寫入之前,請確保指向文件的指針位于文件結(jié)尾。在使用 BinaryWriter 寫入信息時有多個選項。因為 Write 方法有足夠的重載用于您能夠?qū)懭氲乃行畔㈩愋停?,可以使?Write 方法向您的編寫器封裝的流寫入任何標(biāo)準(zhǔn)形式的信息。本情況下,還可以使用 WriteString 方法向流中寫入長度預(yù)先固定的字符串。
VB Source: VB\ReadWrite.aspx
%@ Import Namespace="System.Text" %
%@ Import Namespace="System.IO" %
script language="VB" runat=server
Class TestBinary
Public Shared Function ReadFile(selection As String) As String
Dim output As StringBuilder = New StringBuilder()
Dim fs As FileStream = New FileStream("data.bin", FileMode.OpenOrCreate)
Dim r As BinaryReader = New BinaryReader(fs)
Try
r.BaseStream.Seek(0,SeekOrigin.Begin) ' 將文件指針設(shè)置到文件開始
' 因為不同數(shù)據(jù)類型之間的很多轉(zhuǎn)換結(jié)果都是不可解釋的,
' 所以當(dāng)在其他類型與二進制數(shù)據(jù)之間進行轉(zhuǎn)換時,
' 必須捕捉可能引發(fā)的任何潛在的異常...
' 能夠正確讀取數(shù)據(jù)依賴于如何寫入信息...
' 這與寫日志文件時不同。
Do While r.BaseStream.Position r.BaseStream.Length ' 當(dāng)未到達文件結(jié)尾時
Select Case selection
Case "Boolean"
output.Append( r.ReadBoolean().ToString() )
Case "String"
output.Append( r.ReadString() )
Case "Integer"
output.Append( r.ReadInt32().ToString() )
End Select
Loop
Finally
fs.Close()
End Try
return output.ToString()
End Function
Public Shared Function WriteFile(output As Object, selection As String) As String
Dim fs As FileStream = New FileStream("data.bin", FileMode.Create)
Dim w As BinaryWriter = New BinaryWriter(fs)
Dim strOutput As String = ""
w.BaseStream.Seek(0, SeekOrigin.End) ' 將文件指針設(shè)置到文件結(jié)尾
' 因為正在寫的信息可能不適合于所選擇用于寫入的特定樣式
' (例如,單詞“Hello”作為整數(shù)?),所以我們必須捕捉寫入
' 錯誤,并通知用戶未能執(zhí)行該任務(wù)
Try
Select Case selection
Case "Boolean"
Dim b As Boolean = Convert.ToBoolean(output)
w.Write( b )
Case "String"
Dim s As String = Convert.ToString(output)
w.Write( s )
Case "Integer"
Dim i As Int32 = Convert.ToInt32(output)
w.Write(i)
End Select
Catch E As Exception
' 讓用戶知道未能寫入該信息
strOutput = "寫異常:" chr(13) _
"無法以所請求的格式寫入要寫入的信息。" _
chr(13) "請輸入嘗試寫入的數(shù)據(jù)類型的有效值"
End Try
fs.Close()
return strOutput
End Function
End Class
Sub btnAction_Click(src As Object, E As EventArgs)
Dim s As String = ""
' 寫出文件
s = TestBinary.WriteFile(txtInput.Text, lstDataIn.SelectedItem.Text)
If s = "" Then
Try
' 讀回信息,顯示信息...
txtOutput.Text = TestBinary.ReadFile(lstDataIn.SelectedItem.Text)
Catch Exc As Exception
' 讓用戶知道未能寫入信息
s = "讀異常:" chr(13) _
"無法以所請求的格式讀取要寫入的信息。" _
chr(13) "請輸入嘗試寫入的數(shù)據(jù)類型的有效值"
End Try
Else
txtOutput.Text = s
End If
End Sub
/script
html
head
link rel="stylesheet" href="intro.css"
/head
body style="background-color:f6e4c6"
form method=post runat="server"
p
table
tr
tdb
下面的示例使用 BinaryWriter 對象創(chuàng)建一個二進制文件,然后使用 BinaryReader 讀取該信息。/b可以選擇不同的對象來將所需的信息寫入文件
此演示用于強調(diào)您需要知道如何讀取已寫入的二進制文件。一旦以某種格式寫入數(shù)據(jù),就只能以該格式讀取該信息。但是,可以將多種不同的數(shù)據(jù)類型寫入文件。在此演示中,輸入任意字符串并將它們作為字符串讀取,對于整型,僅輸入整型數(shù)值項(試試浮點數(shù)字,然后看看會發(fā)生什么...);對于布爾型項,僅輸入詞“false”和“true”。
p
hr
/td
/tr
/table
asp:Table id="basetable" runat="server" border="0" cellspacing="0" cellpadding="5"
asp:tablerow
asp:tablecell verticalalign="top"
請選擇要保存到二進制文件的數(shù)據(jù)類型...
/asp:tablecell
asp:tablecell verticalalign="top"
asp:listbox id="lstDataIn" runat="server"
asp:listitemBoolean/asp:listitem
asp:listitem selected="true"String/asp:listitem
asp:listitemInteger/asp:listitem
/asp:listbox
/asp:tablecell
asp:tablecell verticalalign="top"
asp:button id="btnAction" onclick="btnAction_Click" Text="寫入/讀取文件" runat="server"/
/asp:tablecell
/asp:tablerow
可以使用專門制作二維碼的軟件進行設(shè)置V6.5.3的也行,就不用寫什么代碼了,簡單又省事。
大小的話直接在在圖形屬性基本中就可以調(diào)整二維碼的外觀。