內存映像VB.NET 內存映像與地址空間

怎么用vb申請內存空間

你 定義的變量其實就是內存空間,如定義整型變量 ,則系統開辟 2個字節 的空間~~如定義數組就開辟一片內存

成都創新互聯公司是一家專業提供橋東企業網站建設,專注與成都網站建設、網站建設H5建站、小程序制作等業務。10年已為橋東眾多企業、政府機構等服務。創新互聯專業網絡公司優惠進行中。

如何用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的方法

可以嘗試 Visual Basic 2010 Express版本,這個版本是免費的,但是功能沒有Visual Studio 2010里的強大。

在編程時減少對庫的引用,會減少一點內存的使用。

什么是內存映像文件?如何訪問內存映像文件?

一: 內存映像文件

幾乎每個應用程序都要和文件打交道。比如,應用程序有時需要打開、讀取、再關閉文

件;而有時需要打開文件,將數據讀到一個緩沖區再寫回到文件中另一個位置。通常實

現起來都顯得有點繁瑣。Microsoft Windows提供了滿足這兩方面要求的最佳解決途徑:

內存映像文件。

像使用虛擬內存一樣,使用內存映像文件同樣需要經過保留和提交兩個過程,首先在進

程內存空間保留一塊區域,然后提交物理存儲給這段區域。不同的是物理存儲來自于磁

盤上的文件,而不是系統的分頁文件。也即將磁盤上指定的數據文件作為虛擬內存,這

個實現過程被稱為文件映像,可以將文件全部或部分映像到進程的地址空間中。文件映

像過以后,可以把文件映像的部分當作已全部被載入內存一樣的去訪問它,這時又稱

為內存映像文件。

二: 內存映像文件使用步驟

要使用內存映像文件,可以按以下步驟:

(1) 調用Windows API 函數CreateFile()創建或是打開一個文件,得到一個標識該文

件(內核對象)的句柄,確定了哪一個磁盤文件將要作為內存映像文件。

(2) 將(1)中得到的文件對象句柄作為第一個參數調用Windows API 函數CreateFileM

apping()創建一個文件映像對象。通知系統該文件的大小及對該文件的訪問方式,同

時也得到一個標識該文件映像對象的句柄。

(3) 將(2)中得到的文件映像對象句柄作為第一個參數調用Windows API 函數MapView

OfFile()通知系統映像文件全部或部分內容到進程的某一段地址空間,并將此段空間

首地址通過該函數返回。這一步也就是使用虛擬內存的保留和提交過程,此后就可以利

用此首地址實現對文件內容的讀寫了。

網站名稱:內存映像VB.NET 內存映像與地址空間
分享地址:http://m.kartarina.com/article40/hiioeo.html

成都網站建設公司_創新互聯,為您提供標簽優化網站導航手機網站建設面包屑導航網頁設計公司網站制作

廣告

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

外貿網站制作
主站蜘蛛池模板: 亚洲中文字幕无码一久久区| 亚洲中文字幕无码一久久区| 亚洲AV成人无码久久精品老人 | 免费看无码自慰一区二区| 精品无码国产AV一区二区三区 | 老司机亚洲精品影院无码 | 爽到高潮无码视频在线观看| 免费无码午夜福利片| 人妻无码视频一区二区三区| 日韩精品无码一区二区视频| 久久久无码精品午夜| 日韩精品人妻系列无码专区免费| 无码乱码观看精品久久| AV无码久久久久不卡网站下载| 亚洲AV永久无码区成人网站 | 无码中文av有码中文a| 亚洲VA中文字幕不卡无码| 伊人久久大香线蕉无码麻豆| 精品欧洲AV无码一区二区男男| 国精品无码一区二区三区在线| 无码视频免费一区二三区 | 亚洲色中文字幕无码AV| 亚洲最大天堂无码精品区| 久久午夜无码鲁丝片直播午夜精品| 免费人妻av无码专区| 国产品无码一区二区三区在线| 18禁网站免费无遮挡无码中文| 亚洲国产精品无码久久SM | 亚洲av无码一区二区三区天堂| 久久亚洲精品成人无码网站| 亚洲国产精品无码av| 亚洲精品无码久久久影院相关影片| 无码日韩精品一区二区人妻| 国产精品无码久久av| 国产免费午夜a无码v视频| 国产精品白浆在线观看无码专区| 免费看无码自慰一区二区| 日韩视频无码日韩视频又2021| 国产成人无码精品久久久免费| 久久中文字幕无码专区| 日韩综合无码一区二区|