第乙個檔案讀寫的例子

2022-01-14 13:01:36 字數 2420 閱讀 1297

首先,我們開啟vs2013,新建乙個窗體應用程式如圖:

需求:我們要實現這樣的功能,點選文字框,然後彈出檔案對話方塊,讓我們選擇檔案,然後點選確定之後,讀取指定檔案的內容,隨後我們將讀取到的資料,寫入文字中。

檔案讀寫原理:前面,我們在學習檔案讀寫原理的時候,已經知道,硬碟的資料和記憶體之間的關係,在磁碟中,我們將資料讀取成二進位制的資料,存放到byte陣列中,然後在記憶體中,我們需要將byte陣列轉化為原始的文字資料。

然後看下截圖的**:

我們通過openfiledialog類,來建立乙個對話方塊。通過其實例物件的showdialog方法,來顯示對話方塊,這個方法的返回值是dialogresult型別。圖中的**意思是:當我們開啟對話方塊,點選確定之後,顯示所選的檔案的全路徑。

**這樣寫,通過filenames也可以達到一樣的效果:看圖:

現在我們已經達到了這樣的效果,顯示了檔案的路徑,然後現在我們要點選讀取按鈕,把所選的檔案檔案,資料讀取到另乙個檔案中。

我們測試的文字是:

可以看到這個文字是293個位元組:(在**中,我們建立陣列的時候,怎麼知道建立的多大的呢??)

這裡有個技巧:

先讀取傳過來的文字的路徑,在檔案流中的length屬性就標誌了,我們需要讀取的檔案的大小。我們就可以知道要建立的陣列的大小了。

所有的**:

using

system;

using

system.collections.generic;

using

system.componentmodel;

using

system.data;

using

system.drawing;

using

system.io;

using

system.linq;

using

system.text;

using

system.threading.tasks;

using

system.windows.forms;

namespace

filereaddemo

private

void txtpath_click(object

sender, eventargs e)

}private

void btnread_click(object

sender, eventargs e)}}

注意;這個例子需要執行成功之後,需要將程式停止,才可以看到檔案檔案中讀取到的資料,filestream的快取作用。。

下面來優化一下**:

上面的**,只能執行一次,因為檔案流沒有被釋放:

using

system;

using

system.collections.generic;

using

system.componentmodel;

using

system.data;

using

system.drawing;

using

system.io;

using

system.linq;

using

system.text;

using

system.threading.tasks;

using

system.windows.forms;

namespace

filereaddemo

private

void txtpath_click(object

sender, eventargs e)

}private

void btnread_click(object

sender, eventargs e)}}}

}

第乙個Authorware例子

對於flash和authorware兩個軟體,開始的時候自認為flash的作品短小精悍,有利於網路傳播,所以關注的比較多 但是現在發現authorware對於課件製作方面有獨特的優勢 方便!下面是乙個authorware製作時鐘的例子 1 調整視窗 resizewindow 300,300 2 畫表...

第乙個入門例子

1 配置thinkphp 2 嘗試控制器和檢視 1 資料庫 在開始之前,我們首先在資料庫thinkphp中建立乙個think data資料表 以mysql資料庫為例 create table if not exists think data id int 8 unsigned not null au...

第乙個sparkstream例子

用 toc 來生成目錄 第乙個sparkstream例子 在這個例子中,程式從監聽tcp套接字的資料伺服器獲取文字資料,然後計算文字中包含的單詞數。做法如下 首先,我們匯入spark streaming的相關類以及一些從streamingcontext獲得的隱式轉換到我們的環境中,為我們所需的其他類...