vb.net內存數據流的簡單介紹

我用VB.NET編了個程序,在加在一些數據是,會占用很多系統資源

可以將文件等分成兩部分,分別用兩個private讀取就是2線程。

在隴川等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供做網站、成都網站建設 網站設計制作按需定制,公司網站建設,企業網站建設,成都品牌網站建設,成都營銷網站建設,成都外貿網站制作,隴川網站建設費用合理。

內存解決方案:不要等程序自動GC,自己手動釋放不需要內存。

缺陷:可能會浪費時間。

如何用vb.net2003讀寫內存

使用FileStream讀寫文件

文件頭:

using System;

using System.Collections.Generic;

using System.Text;

using System.IO;

讀文件核心代碼:

byte[] byData = new byte[100];

char[] charData = new char[1000];

try

{

FileStream sFile = new FileStream("文件路徑",FileMode.Open);

sFile.Seek(55, SeekOrigin.Begin);

sFile.Read(byData, 0, 100); //第一個參數是被傳進來的字節數組,用以接受FileStream對象中的數據,第2個參數是字節數組中開始寫入數據的位置,它通常是0,表示從數組的開端文件中向數組寫數據,最后一個參數規定從文件讀多少字符.

}

catch (IOException e)

{

Console.WriteLine("An IO exception has been thrown!");

Console.WriteLine(e.ToString());

Console.ReadLine();

return;

}

Decoder d = Encoding.UTF8.GetDecoder();

d.GetChars(byData, 0, byData.Length, charData, 0);

Console.WriteLine(charData);

Console.ReadLine();

寫文件核心代碼:

FileStream fs = new FileStream(文件路徑,FileMode.Create);

//獲得字節數組

byte [] data =new UTF8Encoding().GetBytes(String);

//開始寫入

fs.Write(data,0,data.Length);

//清空緩沖區、關閉流

fs.Flush();

fs.Close();

2、使用StreamReader和StreamWriter

文件頭:

using System;

using System.Collections.Generic;

using System.Text;

using System.IO;

StreamReader讀取文件:

StreamReader objReader = new StreamReader(文件路徑);

string sLine="";

ArrayList LineList = new ArrayList();

while (sLine != null)

{

sLine = objReader.ReadLine();

if (sLine != null!sLine.Equals(""))

LineList.Add(sLine);

}

objReader.Close();

return LineList;

StreamWriter寫文件:

FileStream fs = new FileStream(文件路徑, FileMode.Create);

StreamWriter sw = new StreamWriter(fs);

//開始寫入

sw.Write(String);

//清空緩沖區

sw.Flush();

//關閉流

sw.Close();

fs.Close();

===================================================================================

方式一:用FileStream

//實例化一個保存文件對話框

SaveFileDialog sf = new SaveFileDialog();

//設置文件保存類型

sf.Filter = "txt文件|*.txt|所有文件|*.*";

//如果用戶沒有輸入擴展名,自動追加后綴

sf.AddExtension = true;

//設置標題

sf.Title = "寫文件";

//如果用戶點擊了保存按鈕

if(sf.ShowDialog()==DialogResult.OK)

{

//實例化一個文件流---與寫入文件相關聯

FileStream fs = new FileStream(sf.FileName,FileMode.Create);

//獲得字節數組

byte [] data =new UTF8Encoding().GetBytes(this.textBox1.Text);

//開始寫入

fs.Write(data,0,data.Length);

//清空緩沖區、關閉流

fs.Flush();

fs.Close();

}

方式二:用StreamWriter

//實例化一個保存文件對話框

SaveFileDialog sf = new SaveFileDialog();

//設置文件保存類型

sf.Filter = "txt文件|*.txt|所有文件|*.*";

//如果用戶沒有輸入擴展名,自動追加后綴

sf.AddExtension = true;

//設置標題

sf.Title = "寫文件";

//如果用戶點擊了保存按鈕

if (sf.ShowDialog() == DialogResult.OK)

{

//實例化一個文件流---與寫入文件相關聯

FileStream fs = new FileStream(sf.FileName, FileMode.Create);

//實例化一個StreamWriter--與fs相關聯

StreamWriter sw = new StreamWriter(fs);

//開始寫入

sw.Write(this.textBox1.Text);

//清空緩沖區

sw.Flush();

//關閉流

sw.Close();

fs.Close();

}

string FileName = Guid.NewGuid().ToString() + ".txt"; //GUID生成唯一文件名

StringBuilder ckpw = new StringBuilder("\"憑證輸出\", \"V800\", \"001\", \"東風隨州專用汽車有限公司\"," + "\"F89自由項16\", \"F90審核日期:\"");

if (!FileIO.IsFolderExists(Server.MapPath("pzsc")))

FileIO.CreaterFolder(Server.MapPath(""), "");

string filePath = Server.MapPath("pzsc") + "\\" + FileName;

System.IO.StreamWriter sw = new System.IO.StreamWriter(filePath, false, Encoding.GetEncoding("GB2312"));//創建的時候需要指定編碼格式,默認是UTF-8,中文顯示亂碼

sw.WriteLine(ckpw.ToString());

sw.Close();

方式三:用BinaryWriter

//實例化一個保存文件對話框

SaveFileDialog sf = new SaveFileDialog();

//設置文件保存類型

sf.Filter = "txt文件|*.txt|所有文件|*.*";

//如果用戶沒有輸入擴展名,自動追加后綴

sf.AddExtension = true;

//設置標題

sf.Title = "寫文件";

//如果用戶點擊了保存按鈕

if (sf.ShowDialog() == DialogResult.OK)

{

//實例化一個文件流---與寫入文件相關聯

FileStream fs = new FileStream(sf.FileName, FileMode.Create);

//實例化BinaryWriter

BinaryWriter bw = new BinaryWriter(fs);

bw.Write(this.textBox1.Text);

//清空緩沖區

bw.Flush();

//關閉流

bw.Close();

fs.Close();

}

C#緩存流示例------用緩存流復制文件

C#文件處理操作必須先導入命名空間:using System.IO;

背景:使用VS2005、一個按鈕、一個窗體、C#緩存流、把D:\KuGoo\愛得太多.wma復制到D:\并更名為love.wma,即:D:\love.wma

在按鈕的Click事件中添加如下代碼:

private void button1_Click(object sender, EventArgs e)

{

//創建兩個文件流 一個是源文件相關,另一個是要寫入的文件

FileStream fs = new FileStream(@"D:\KuGoo\愛得太多.wma",FileMode.Open);

FileStream fs2 = new FileStream(@"D:\love.wma",FileMode.Create);

//創建一個字節數組,作為兩者之間的媒介

//好比兩個人拿蘋果,這個字節數組就好比一個籃子,一個人作死的把蘋果送到籃子里面,

//而我就可以作死得拿蘋果,通過這個媒介我們互不干擾,

//不需要互相等待【她往籃子里面放了蘋果我才可以去拿】,提高了效率

byte[] data = new byte[1024];

//創建兩個緩沖流,與兩個文件流相關聯

BufferedStream bs = new BufferedStream(fs);

BufferedStream bs2= new BufferedStream(fs2);

//fs作死的讀,fs2作死的寫,直到fs沒有字節可讀fs2就不寫了

//好比,一個人作死的往籃子里面丟蘋果,另一個人作死得往籃子里面拿蘋果,直到籃子里面沒有蘋果拿了為止

//即--那個人沒有蘋果往籃子里面放了

while(fs.Read(data,0,data.Length)0)

{

fs2.Write(data,0,data.Length);

fs2.Flush();

}

//關閉流,好比兩個人累了,都要休息 呵呵o(∩_∩)o...

fs.Close();

fs2.Close();

}

C#內存流示例-----用內存流來讀取圖片

C#文件處理操作必須先導入命名空間:using System.IO;

背景:一個窗體、一個pictureBox、一個lable[沒有選擇圖片,lable的text為"圖片未選擇"],在pictureBox1的Click事件中添加如下代碼:

private void pictureBox1_Click(object sender, EventArgs e)

{

//實例化一個打開文件對話框

OpenFileDialog op = new OpenFileDialog();

//設置文件的類型

op.Filter = "JPG圖片|*.jpg|GIF圖片|*.gif";

//如果用戶點擊了打開按鈕、選擇了正確的圖片路徑則進行如下操作:

if(op.ShowDialog()==DialogResult.OK)

{

//清空文本

this.label1.Text = "";

//實例化一個文件流

FileStream fs = new FileStream(op.FileName, FileMode.Open);

//把文件讀取到字節數組

byte[] data = new byte[fs.Length];

fs.Read(data, 0, data.Length);

fs.Close();

//實例化一個內存流---把從文件流中讀取的內容[字節數組]放到內存流中去

MemoryStream ms = new MemoryStream(data);

//設置圖片框 pictureBox1中的圖片

this.pictureBox1.Image = Image.FromStream(ms);

}

}

vb.net讀取流

Imports System

Imports System.IO

Imports System.TextPublic Class Form2 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim path As String = "MyTest.txt" Try

If File.Exists(path) Then

File.Delete(path)

End If '寫入流

Dim sw As StreamWriter = New StreamWriter(path)

sw.WriteLine("This")

sw.WriteLine("is some text")

sw.WriteLine("to test")

sw.WriteLine("Reading")

sw.Close()

'讀取流

'Dim sr As StreamReader = New StreamReader(path) 'Do While sr.Peek() = 0

' 'This is an arbitrary size for this example.

' Dim c(5) As Char

' sr.Read(c, 0, c.Length)

' 'The output will look odd, because

' 'only five characters are read at a time.

' 'MsgBox(c)

'Loop

'sr.Close()

Catch ex As Exception

Console.WriteLine("The process failed: {0}", ex.ToString())

End Try End Sub '讀取流

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim path As String = "MyTest.txt" Dim reader As StreamReader = New StreamReader(path)

Dim c(5) As Char

reader.Read(c, 0, c.Length)

MsgBox(c)

reader.Close() End Sub

End Class 解讀Read(arrayChar[]()[], Int32, Int32) buffer 類型:arraySystem..::.Char[]()[]

此方法返回時,包含指定的字符數組,該數組的 index 和 (index + count - 1) 之間的值由從當前源中讀取的字符替換。 index 類型:System..::.Int32

開始寫入的 buffer 的索引。 count 類型:System..::.Int32

最多讀取的字符數。

網站題目:vb.net內存數據流的簡單介紹
分享URL:http://m.kartarina.com/article12/hgsedc.html

成都網站建設公司_創新互聯,為您提供用戶體驗定制開發虛擬主機網頁設計公司關鍵詞優化網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

小程序開發
主站蜘蛛池模板: 精品人妻系列无码人妻漫画| 一本加勒比HEZYO无码资源网| 无码人妻AV免费一区二区三区| 久久久久久久无码高潮| 中文字幕无码精品亚洲资源网久久| 天堂Av无码Av一区二区三区| 一本加勒比HEZYO无码人妻| 人妻少妇伦在线无码专区视频| 欧美性生交xxxxx无码影院∵| 久久精品岛国av一区二区无码| 精品无码成人片一区二区 | 国产精品99精品无码视亚| 亚洲成a∨人片在无码2023| 亚洲精品无码av天堂| 日韩av无码国产精品| 无码国产乱人伦偷精品视频| 久久激情亚洲精品无码?V| 亚洲色在线无码国产精品不卡| 无码视频在线观看| 狠狠躁天天躁无码中文字幕图| 久久精品日韩av无码| 97久久精品无码一区二区| 亚洲av日韩av无码黑人| 日韩精品无码人成视频手机| 蕾丝av无码专区在线观看| 无码一区二区三区免费视频| 久久AV高清无码| 人妻系列无码专区无码中出| 亚洲AV无码久久| 亚洲av无码潮喷在线观看| 精品无码久久久久久久动漫| 在线A级毛片无码免费真人| 国产午夜av无码无片久久96| 无码av专区丝袜专区| 亚洲va中文字幕无码| 黑人无码精品又粗又大又长 | 亚洲乱亚洲乱妇无码| 日韩人妻精品无码一区二区三区 | 色综合久久无码五十路人妻| 久久老子午夜精品无码怎么打| 一本大道东京热无码一区|