成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

vb.net讀寫(xiě)二進(jìn)制,c++二進(jìn)制讀寫(xiě)

VB.NET的二進(jìn)制文件讀寫(xiě)為什么這么慢?比C++的慢慢N倍啊

這個(gè)是你的問(wèn)題,不是vb.net速度慢。

為崇州等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及崇州網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、做網(wǎng)站、崇州網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

你應(yīng)該這樣寫(xiě):

Dim file1 As FileStream = New FileStream("地址", FileMode.Open)

Dim myread As BinaryReader = New BinaryReader(file1)

Dim fn(file1.Length) As Byte

For i As Integer = 0 To file1.Length - 1

fn(i) = myread.ReadByte

Next

記得前面要 imports system.io

這個(gè)代碼把文件讀入一個(gè)fn的數(shù)組中,速度極快。

.net 二進(jìn)制讀寫(xiě)文件(vb, C#均可)

數(shù)據(jù)量不大的話,直接使用如下函數(shù)

byte[] bytes = File.ReadAllBytes("文件路徑"); // 讀二進(jìn)制數(shù)據(jù)

File.WriteAllBytes("文件路徑", bytes); // 寫(xiě)二進(jìn)制數(shù)據(jù)

VB.NET 怎么讀寫(xiě)二進(jìn)制文件,類似Open

本示例闡釋二進(jìn)制文件的基本輸入和輸出(使用 BinaryReader、BinaryWriter 和 FileStream 類。 在如何創(chuàng)建日志文件標(biāo)題下面有一個(gè)類似的主題。讀寫(xiě)二進(jìn)制信息使您可以創(chuàng)建和使用通過(guò)其他輸入和輸出方法無(wú)法訪問(wèn)的文件。本示例還展示寫(xiě)入非字符串?dāng)?shù)據(jù),并展示二進(jìn)制 I/O 的功能。

盡管計(jì)算機(jī)上的文件可以不同的類型和文件存儲(chǔ),但是,二進(jìn)制格式是文件的較常用格式之一。此處對(duì)創(chuàng)建二進(jìn)制文件的簡(jiǎn)短介紹使用基類 BinaryReader 和 BinaryWriter 從文件獲取信息,并將信息放入文件。這些類中的每個(gè)類均封裝一個(gè)信息流,因此,在進(jìn)一步操作之前,需要?jiǎng)?chuàng)建一個(gè)可用于來(lái)回寫(xiě)信息的流。因?yàn)橐獎(jiǎng)?chuàng)建文件,所以可使用 FileStream 來(lái)公開(kāi)特定文件,在此情況下,如果該文件已存在,則可以修改該文件,或者如果該文件尚不存在,則可以創(chuàng)建該文件。在有 FileStream 之后,可以使用它來(lái)構(gòu)造 BinaryReader 和 BinaryWriter

在讀入信息之后,可以對(duì)信息進(jìn)行所需的任何操作。但是,在某些時(shí)候,您可能想要將信息寫(xiě)回文件,因此需要 BinaryWriter。在本示例中,您將使用 Seek 方法將信息追加到文件結(jié)尾,因此,在開(kāi)始寫(xiě)入之前,請(qǐng)確保指向文件的指針位于文件結(jié)尾。在使用 BinaryWriter 寫(xiě)入信息時(shí)有多個(gè)選項(xiàng)。因?yàn)?Write 方法有足夠的重載用于您能夠?qū)懭氲乃行畔㈩愋?,所以,可以使?Write 方法向您的編寫(xiě)器封裝的流寫(xiě)入任何標(biāo)準(zhǔn)形式的信息。本情況下,還可以使用 WriteString 方法向流中寫(xiě)入長(zhǎng)度預(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è)置到文件開(kāi)始

' 因?yàn)椴煌瑪?shù)據(jù)類型之間的很多轉(zhuǎn)換結(jié)果都是不可解釋的,

' 所以當(dāng)在其他類型與二進(jìn)制數(shù)據(jù)之間進(jìn)行轉(zhuǎn)換時(shí),

' 必須捕捉可能引發(fā)的任何潛在的異常...

' 能夠正確讀取數(shù)據(jù)依賴于如何寫(xiě)入信息...

' 這與寫(xiě)日志文件時(shí)不同。

Do While r.BaseStream.Position r.BaseStream.Length ' 當(dāng)未到達(dá)文件結(jié)尾時(shí)

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é)尾

' 因?yàn)檎趯?xiě)的信息可能不適合于所選擇用于寫(xiě)入的特定樣式

' (例如,單詞“Hello”作為整數(shù)?),所以我們必須捕捉寫(xiě)入

' 錯(cuò)誤,并通知用戶未能執(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

' 讓用戶知道未能寫(xiě)入該信息

strOutput = "寫(xiě)異常:" chr(13) _

"無(wú)法以所請(qǐng)求的格式寫(xiě)入要寫(xiě)入的信息。" _

chr(13) "請(qǐng)輸入嘗試寫(xiě)入的數(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 = ""

' 寫(xiě)出文件

s = TestBinary.WriteFile(txtInput.Text, lstDataIn.SelectedItem.Text)

If s = "" Then

Try

' 讀回信息,顯示信息...

txtOutput.Text = TestBinary.ReadFile(lstDataIn.SelectedItem.Text)

Catch Exc As Exception

' 讓用戶知道未能寫(xiě)入信息

s = "讀異常:" chr(13) _

"無(wú)法以所請(qǐng)求的格式讀取要寫(xiě)入的信息。" _

chr(13) "請(qǐng)輸入嘗試寫(xiě)入的數(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 對(duì)象創(chuàng)建一個(gè)二進(jìn)制文件,然后使用 BinaryReader 讀取該信息。/b可以選擇不同的對(duì)象來(lái)將所需的信息寫(xiě)入文件

此演示用于強(qiáng)調(diào)您需要知道如何讀取已寫(xiě)入的二進(jìn)制文件。一旦以某種格式寫(xiě)入數(shù)據(jù),就只能以該格式讀取該信息。但是,可以將多種不同的數(shù)據(jù)類型寫(xiě)入文件。在此演示中,輸入任意字符串并將它們作為字符串讀取,對(duì)于整型,僅輸入整型數(shù)值項(xiàng)(試試浮點(diǎn)數(shù)字,然后看看會(huì)發(fā)生什么...);對(duì)于布爾型項(xiàng),僅輸入詞“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"

請(qǐng)選擇要保存到二進(jìn)制文件的數(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="寫(xiě)入/讀取文件" runat="server"/

/asp:tablecell

/asp:tablerow

vb.net如何讀寫(xiě)二進(jìn)制文件? 有各種類型的變量

open函數(shù)用來(lái)打開(kāi)一個(gè)文件,其調(diào)用的一般形式為:

文件指針名=fopen(文件名,使用文件方式);

其中,

“文件指針名”必須是被說(shuō)明為FILE

類型的指針變量;

“文件名”是被打開(kāi)文件的文件名;

“使用文件方式”是指文件的類型和操作要求。

“文件名”是字符串常量或字符串?dāng)?shù)組。

例如:

FILE

*fp;

fp=("file

a","r");

其意義是在當(dāng)前目錄下打開(kāi)文件file

a,只允許進(jìn)行“讀”操作,并使fp指向該文件。

又如:

FILE

*fphzk

fphzk=("c:\\hzk16","rb")

其意義是打開(kāi)C驅(qū)動(dòng)器磁盤(pán)的根目錄下的文件hzk16,這是一個(gè)二進(jìn)制文件,只允許按二進(jìn)制方式進(jìn)行讀操作。兩個(gè)反斜線“\\

”中的第一個(gè)表示轉(zhuǎn)義字符,第二個(gè)表示根目錄。

使用文件的方式共有12種,下面給出了它們的符號(hào)和意義。

文件使用方式

意義

“rt”

只讀打開(kāi)一個(gè)文本文件,只允許讀數(shù)據(jù)

“wt”

只寫(xiě)打開(kāi)或建立一個(gè)文本文件,只允許寫(xiě)數(shù)據(jù)

“at”

追加打開(kāi)一個(gè)文本文件,并在文件末尾寫(xiě)數(shù)據(jù)

“rb”

只讀打開(kāi)一個(gè)二進(jìn)制文件,只允許讀數(shù)據(jù)

“wb”

只寫(xiě)打開(kāi)或建立一個(gè)二進(jìn)制文件,只允許寫(xiě)數(shù)據(jù)

“ab”

追加打開(kāi)一個(gè)二進(jìn)制文件,并在文件末尾寫(xiě)數(shù)據(jù)

“rt+”

讀寫(xiě)打開(kāi)一個(gè)文本文件,允許讀和寫(xiě)

“wt+”

讀寫(xiě)打開(kāi)或建立一個(gè)文本文件,允許讀寫(xiě)

“at+”

讀寫(xiě)打開(kāi)一個(gè)文本文件,允許讀,或在文件末追加數(shù)據(jù)

“rb+”

讀寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件,允許讀和寫(xiě)

“wb+”

讀寫(xiě)打開(kāi)或建立一個(gè)二進(jìn)制文件,允許讀和寫(xiě)

“ab+”

讀寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件,允許讀,或在文件末追加數(shù)據(jù)

對(duì)于文件使用方式有以下幾點(diǎn)說(shuō)明:

1)

文件使用方式由r,w,a,t,b,+六個(gè)字符拼成,各字符的含義是:

r(read):

w(write):

寫(xiě)

a(append):

追加

t(text):

文本文件,可省略不寫(xiě)

b(banary):

二進(jìn)制文件

+:

讀和寫(xiě)

2)

凡用“r”打開(kāi)一個(gè)文件時(shí),該文件必須已經(jīng)存在,且只能從該文件讀出。

3)

用“w”打開(kāi)的文件只能向該文件寫(xiě)入。若打開(kāi)的文件不存在,則以指定的文件名建立該文件,若打開(kāi)的文件已經(jīng)存在,則將該文件刪去,重建一個(gè)新文件。

4)

若要向一個(gè)已存在的文件追加新的信息,只能用“a”方式打開(kāi)文件。但此時(shí)該文件必須是存在的,否則將會(huì)出錯(cuò)。

5)

在打開(kāi)一個(gè)文件時(shí),如果出錯(cuò),fopen將返回一個(gè)空指針值NULL。在程序中可以用這一信息來(lái)判別是否完成打開(kāi)文件的工作,并作相應(yīng)的處理。因此常用以下程序段打開(kāi)文件:

6)

if((fp=fopen("c:\\hzk16","rb")==NULL)

{

printf("\nerror

on

open

c:\\hzk16

file

vb.net 二進(jìn)制讀取文件

VB.NET打開(kāi)二進(jìn)制文件用fileopen完成,打開(kāi)二進(jìn)制文件的形式為:openmode.binary

讀取二進(jìn)制文件用的是fileget方法,寫(xiě)入二進(jìn)制文件用的是fileput方法。

應(yīng)用示例:將一批隨機(jī)數(shù)保存在一個(gè)dat文件中,然后再將其提取到文本框中。

二進(jìn)制文件的讀寫(xiě)一批隨機(jī)數(shù)的存取,程序?yàn)椋?/p>

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

文章名稱:vb.net讀寫(xiě)二進(jìn)制,c++二進(jìn)制讀寫(xiě)
本文地址:http://jinyejixie.com/article38/hopdsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、虛擬主機(jī)、網(wǎng)站改版、定制開(kāi)發(fā)、網(wǎng)站建設(shè)、小程序開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
绩溪县| 名山县| 凤山县| 哈密市| 亳州市| 中宁县| 朔州市| 连云港市| 鞍山市| 井研县| 蓝田县| 静安区| 彭水| 绍兴市| 常熟市| 太康县| 承德市| 锡林郭勒盟| 府谷县| 三亚市| 连山| 中卫市| 柯坪县| 正安县| 措勤县| 楚雄市| 三亚市| 仪征市| 苗栗县| 双流县| 灵丘县| 增城市| 竹北市| 长兴县| 罗定市| 宜川县| 大城县| 荣成市| 商南县| 关岭| 兴化市|