io操作
c#將檔案視為乙個位元組序列,以流的方式對檔案進行操作。流是位元組序列的抽象概念。
檔案和流之間既有區別又有聯絡。
檔案是在各種驅動器上(可移動磁碟、硬碟、cd 等)永久或臨時儲存的資料的有序集合,是進行資料讀寫操作的基本物件。檔案通常具有檔名、所在路徑、建立時間、訪問許可權等基本屬性。
流非常類似於單獨的磁碟檔案,同時也是進行資料讀取操作的物件。流提供了連續的位元組儲存空間,通過流可以向後備儲存器寫入資料,也可以從後備儲存器中讀取資料。雖然資料實際的儲存位置可以不連續,甚至可以分布在多個磁碟上,但是使用者看到的是封裝後的資料結構,是連續的位元組流。
與io操作相關的列舉
filemode,表示檔案的開啟方式,列舉取值包括:
取值說明
以追加方式開啟檔案,如果檔案存在則在尾部追加,否則建立乙個新檔案
create
建立並開啟乙個新檔案,如果檔案已經存在則覆蓋舊檔案
createnew
建立並開啟乙個新檔案,如果檔案已經存在則發生異常
open
開啟現有檔案,如果檔案不存在則發生異常
openorcreate
開啟或建立乙個檔案,如果檔案已經存在則開啟它,否則建立並開啟乙個新檔案
truncate
開啟現有檔案,並清空檔案內容
seekorigin,表示以什麼為基準來計算檔案流中的偏移量,列舉取值包括:
取值說明
begin
從檔案流的起始位置計
current
從檔案流的當前位置計
end從檔案流的結束位置計
fileaccess,表示對檔案的訪問許可權,列舉取值包括:
取值說明
read
對檔案擁有讀許可權
write
對檔案擁有寫許可權
readwrite
對檔案同時擁有讀寫許可權
fileshare,表示檔案的共享方式,列舉取值包括:
取值說明
none
禁止任何形式的共享
read
讀共享,開啟檔案後允許其他程序對檔案進行讀操作
readwrite
讀寫共享,開啟檔案後允許其他程序對檔案進行寫操作
write
寫共享,開啟檔案後允許其他程序對檔案進行寫操作
fileattributes,表示檔案的型別,列舉取值包括:
取值說明
取值說明
archive
存檔檔案
compressed
壓縮檔案
device
裝置檔案
directory
目錄encrypted
加密檔案
hidden
隱藏檔案
normal
普通檔案
notcontentindexed
無索引檔案
offline
離線檔案
readonly
唯讀檔案
reparsepoint
重分析檔案
sparsefile
稀疏檔案
system
系統檔案
temporary
臨時檔案
drivetype,表示驅動器型別,列舉取值包括:
取值說明
取值說明
cdrom
cd-rom驅動器
fixed
固定磁碟驅動器
network
網路驅動器
norootdirectory
不含根目錄的驅動器
ramram快閃儲存器驅動器
removable
可移動儲存裝置
unknown
驅動器裝置型別未知
driveinfo類
用於對驅動器進行操作
directoryinfo類
用來描述乙個資料夾物件。
directory類
用於操作目錄類(靜態類)。
fileinfo類
用來描述乙個檔案物件。
file類
用於操作檔案(靜態類)。
path類
對檔案或目錄的路徑進行操作的類。
stream類
流是以序列的方式對資料進行操作,因此支援長度和當前位置的概念。stream支援同步和非同步地資料讀寫。在同步操作中,乙個流物件只有乙個當前位置,不同的程式或程序都在當前位置進行讀寫;而在非同步操作中,不同的程式或程序可以在不同位置上進行讀寫,當然這需要檔案的共享支援。
filestream
檔案流,對檔案進行讀寫操作
檔案流filestream支援同步和非同步檔案讀寫,它還可以使用輸入輸出快取以提高效能。
使用完filestream物件後,一定不要忘記使用close方法來關閉檔案流,否則不僅會使別的程式不能訪問該檔案,還可能導致檔案損壞。
開啟檔案,同時對該檔案建立了讀寫器,則在關閉時,先關閉streamwriter才能關閉streamreader,最後才能關閉檔案
streamreader
對文字檔案的讀取
streamwriter
用於對文字檔案的寫入操作
什麼是文字檔案?
直接用字串格式儲存。即,使用記事本開啟檔案時,不會出現亂碼。
gzipstream
壓縮流
IO詳解 常用io類
inputstream與reader 前者是位元組輸入流,讀取檔案內容,檔案需要先轉換成byte,才能讀取得到,如果是中文,可能會出現亂碼 後者是字元輸入流,可以讀取字串,特別是有中文的時候,可以使用此類,不會出現亂碼。outputstream 與writer 前者是位元組輸出流,資料儲存到文字中,...
IO 常用IO操作類繼承結構 及簡單簡介
io字元流 reader 源 bufferedreader linenumberreader inputstreamreader filereader 位元組流通向字元流的橋梁 stringreader writer 目的 bufferedwriter outputstreamwriter file...
C 常用IO操作
建立資料夾 如果資料夾路徑不存在則建立資料夾 if directory.exists path directory.createdirectory path 遞迴建立資料夾 public void createdir string fullpath view code 刪除整個資料夾 directo...