這節講一下使用filestream讀寫資料,這是乙個比較基礎的流。
filestream類只能處理原始位元組,所以它可以處理任何型別的檔案。
先看一下它的構造方法:
filestream fs = new filestream("這個方法最少有兩個引數,也就是前兩個,第乙個是檔案路徑,第二個filemode列舉,規定檔案的開啟方式,是正常開啟還是建立等等,第三個是fileaccess列舉,規定流的訪問形式,是寫入還是讀取等等,不指明這個引數,它的預設值是readwrite,也就是可讀可寫。./demo.txt
", filemode.open, fileaccess.read);
filemode列舉成員:
fileaccess列舉成員:
file和fileinfo類都提供了openread()和openwrite()這兩個方法,可以快速建立唯讀或者只寫的filestream物件。
讀寫檔案:
讀取檔案,需要用到read()和write(),這兩個方法最常用的過載如下所示:
len=fs.read(buffer, 0buffer是乙個位元組陣列,用於存放一次讀取的位元組,可以自定義大小;第二個引數是偏移量,指示從buffer的第幾個索引開始讀,一般都是0,從開始讀取;第三個引數是一次讀取的大小,這個一般也都是固定的,是陣列的長度。read()方法的返回值是本次讀取實際讀取 的長度,因為存在最後一次讀取的長度不滿buffer的長度的情況,write()方法,第三個引數是指定寫入的長度,這裡一般指定read()方法的返回值,這樣就不會出現將多餘的無關資料寫入檔案中。, buffer.length)
write.write(buffer,
0, len)
下面看一下例子:
//第23行用到了乙個方法seek(),這個是用來設定當前檔案指標的位置的,一般情況下,檔案讀到哪指標就指到哪,而通過這個方法,可以重新設定指標的位置,它的第乙個引數是偏移量,為正數則向後移動,為負數則向前移動,第二個引數是seekorigin列舉,它有三個成員,begin,end,current,分別指示檔案的開始,結束和當前位置,偏移量根據這個列舉值進行移動。讀取資料並展示
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();
另外,操作結束後要及時釋放資源,或者一開始使用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 在例項配置 這樣就開啟了...