使用FileStream讀寫資料

2022-02-14 13:51:13 字數 2119 閱讀 3983

這節講一下使用filestream讀寫資料,這是乙個比較基礎的流。

filestream類只能處理原始位元組,所以它可以處理任何型別的檔案。

先看一下它的構造方法:

filestream fs = new filestream("

./demo.txt

", filemode.open, fileaccess.read);

這個方法最少有兩個引數,也就是前兩個,第乙個是檔案路徑,第二個filemode列舉,規定檔案的開啟方式,是正常開啟還是建立等等,第三個是fileaccess列舉,規定流的訪問形式,是寫入還是讀取等等,不指明這個引數,它的預設值是readwrite,也就是可讀可寫。

filemode列舉成員:

fileaccess列舉成員:

file和fileinfo類都提供了openread()和openwrite()這兩個方法,可以快速建立唯讀或者只寫的filestream物件。

讀寫檔案:

讀取檔案,需要用到read()和write(),這兩個方法最常用的過載如下所示:

len=fs.read(buffer, 0

, buffer.length)

write.write(buffer,

0, len)

buffer是乙個位元組陣列,用於存放一次讀取的位元組,可以自定義大小;第二個引數是偏移量,指示從buffer的第幾個索引開始讀,一般都是0,從開始讀取;第三個引數是一次讀取的大小,這個一般也都是固定的,是陣列的長度。read()方法的返回值是本次讀取實際讀取    的長度,因為存在最後一次讀取的長度不滿buffer的長度的情況,write()方法,第三個引數是指定寫入的長度,這裡一般指定read()方法的返回值,這樣就不會出現將多餘的無關資料寫入檔案中。

下面看一下例子:

//

讀取資料並展示

filestream fs = new filestream("

./demo.txt

", filemode.open, fileaccess.read);

int len, i = 0;//

存放每次讀取的資料

byte buffer = new

byte[5

];//

存放所有讀到的資料,最後將其轉換為字串

byte data = new

byte

[fs.length];

//迴圈讀取檔案

while ((len = fs.read(buffer, 0, buffer.length)) != 0)}

//jiang

console.writeline(encoding.utf8.getchars(data));​//

資料寫入

filestream write = new filestream("

./demo_copy.txt

", filemode.create, fileaccess.write);​//

重置指標

fs.seek(0

, seekorigin.begin);

while ((len = fs.read(buffer, 0, buffer.length)) != 0)​

fs.dispose();

write.dispose();

第23行用到了乙個方法seek(),這個是用來設定當前檔案指標的位置的,一般情況下,檔案讀到哪指標就指到哪,而通過這個方法,可以重新設定指標的位置,它的第乙個引數是偏移量,為正數則向後移動,為負數則向前移動,第二個引數是seekorigin列舉,它有三個成員,begin,end,current,分別指示檔案的開始,結束和當前位置,偏移量根據這個列舉值進行移動。

另外,操作結束後要及時釋放資源,或者一開始使用using引用要釋放的物件。

使用FileStream物件讀寫檔案

在專案開發中經常會涉及到對檔案的讀寫,c 提供了很多種方式來對檔案進行讀寫操作,今天來說說filestream 物件。filestream表示在磁碟或網路路徑上指向檔案的流。一般操作檔案都習慣使用streamreader 和 streamwriter,因為它們操作的是字元資料 而filestream...

FileStream讀寫檔案

filestream類 操作位元組的,可以操作任何的檔案 streamreader類和streamwriter類 操作字元的,只能操作文字檔案。1 filestream類 filestream類 命名空間 system.io 1 建構函式 filemode 列舉 指定作業系統應建立乙個新的檔案。如果...

Filestream 使用簡單步驟

為了減少大檔案在資料庫的儲存對資料庫的讀寫效率造成的壓力,多了filestream這乙個功能,下面介紹一下如何快速使用filestream。1 開啟sqlserver例項對filestream 的開關,具體開關在 sql server配置管理器裡面,都開啟。2 開啟ssms 在例項配置 這樣就開啟了...