C 使用FileStream類從文字中讀資料

2021-09-08 00:22:32 字數 2030 閱讀 8101

filestream物件表示在磁碟或網路路徑上指向檔案的流。這個類提供了在檔案中讀寫位元組的方法,但經常使用streamreader或streamwriter執行這些功能。這是因為filestream類操作的是位元組和位元組陣列,而stream類操作的是字元資料。字元資料易於使用,但是有些操作,比如隨機檔案訪問(訪問檔案中間某點的資料),就必須由filestream物件執行。

一、建立filestream物件

1、filestream物件最簡單的建構函式僅僅帶有兩個引數,即檔名和filemode列舉值。

filestream afile = new filestream(filename, filemode);

2、另乙個常用的建構函式如下:

filestream afile = new filestream(filename, filemode, fileaccess);

三個引數的意義分別為:filename檔名,filemode列舉型別,表示如何開啟檔案的模式。fileaccess也是列舉型別,用於改變對使用者的訪問許可權。

filemode列舉成員:

使用每個值會發生什麼,取決於指定的檔名是否表示已有的檔案。注意建立流時該流指向檔案中的位置,除非特別說明,否則流就指向檔案的開頭。

在filestream建構函式不使用fileaccess列舉引數的版本中,使用預設值fileaccess. readwrite。

3、建立filestream物件,不必以filestream建構函式的引數形式提供前面所有的資訊。file和fileinfo類都提供了openread()和openwrite()方法,更易於建立filestream物件。前者開啟了唯讀訪問的檔案,後者只允許寫入檔案。

我們回顧一下:

open方法開啟檔案,返回檔案流filestream物件。

openread方法開啟現有檔案來讀取資料,返回唯讀流filestream物件。

openwrite方法開啟現在檔案以進行寫入,返回只寫不共享的filestream物件。

例如,下面的**行開啟了用於唯讀訪問的text.txt檔案:

filestream afile = file.openread("test.txt");

注意下面的**執行同樣的功能:

fileinfo afileinfo = new fileinfo("test.txt");

filestream afile = afile.openread();

二、讀取資料

使用filestream類讀取資料不像streamreader類讀取資料那樣容易。這是因為filestream類只能處理原始位元組(raw byte)。處理原始位元組的功能使filestream類可以用於任何資料檔案,而不僅僅是文字檔案。通過讀取位元組資料,filestream物件可以用於讀取影象和聲音的檔案。這種靈活性的代價是,不能使用filestream類將資料直接讀入字串,而使用streamreader類卻可以這樣處理。但是有幾種轉換類可以很容易地將位元組陣列轉換為字元陣列,或者進行相反的操作。

filestream.read()方法是從filestream物件所指向的檔案中訪問資料的主要手段。這個方法從檔案中讀取資料,再把資料寫入乙個位元組陣列。它有三個引數:第乙個引數是傳輸進來的位元組陣列,用以接受filestream物件中的資料。第二個引數是位元組陣列中開始寫入資料的位置。它通常是0,表示從陣列開端向檔案中寫入資料。最後乙個引數指定從檔案中讀出多少位元組。

下面我們看例項:

using system;

using system.text;

using system.io;

class program

fs.close();

}else

console.writeline("該檔案不存在");

}catch (exception ex)

console.readline();}}

從鍵盤接收檔案路徑,然後使用exits方法判斷檔案是否存在,如果存在,則使用filestream類的openread方法開啟並讀取,將讀到的資料存放在位元組陣列中,然後將位元組按預設編碼方式解碼成字串並輸出到控制台。流不使用時,一定要及時關閉。fs.close()關閉流。

C 類FileStream的使用

指定作業系統開啟檔案的方式 對於讀 寫或讀 寫訪問的檔案中定義的常數 包含用於控制的訪問其他型別的常數 system.io.filestream 物件可以具有相同的檔案 filestream派生於抽象類stream,stream抽象類實現了idisposable介面 常用構造方法 常用方法 屬性 u...

C 檔案流 FileStream類

filestream類 檔案流 類用於讀寫檔案中的資料,它既支援同步讀寫操作,也支援非同步讀寫操作。使用檔案流可以對檔案進行讀取 寫入 開啟和關閉操作,以及系統相關操作的標準輸入 標準輸出等。filestream類包括9個屬性,它們可以描述filestream類的例項的特性,如流的長度 以位元組為單...

使用FileStream讀寫資料

這節講一下使用filestream讀寫資料,這是乙個比較基礎的流。filestream類只能處理原始位元組,所以它可以處理任何型別的檔案。先看一下它的構造方法 filestream fs new filestream demo.txt filemode.open,fileaccess.read 這個...