程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 關於 Delphi 中流的使用(2) 用 TFileStream(文件流) 讀寫

關於 Delphi 中流的使用(2) 用 TFileStream(文件流) 讀寫

編輯:Delphi

 TStream 是一個抽象的基類, 不能直接生成對象. 在具體的應用中, 主要使用它的子孫類:
TFileStream: 文件流
TStringStream: 字符串流
TMemoryStream: 內存流
TResourceStream: 資源文件流

THandleStream: 是 TFileStream 的父類、TStream 的子類
TCustomMemoryStream: 是 TMemoryStream 和 TResourceStream 的父類、TStream 的子類

與流相關的常用類還有: TReader、TWriter、TCompressionStream、TDecompressionStream

來一個文件流的例子:

procedure TForm1.Button1Click(Sender: TObject); 
var 
 getStream,setStream: TFileStream; {聲明一個文件流}  
 getPath,setPath: string; 
begin 
 getPath := 'c:\temp\get.jpg'; {需要這個文件存在} 
 setPath := 'c:\temp\set.jpg'; {這個會自動建立} 
 if not FileExists(getPath) then 
 begin 
  ShowMessage('找不到我們要測試的圖片文件: ' + getPath); 
  Exit; 
 end; 
 
 getStream := TFileStream.Create(getPath, fmOpenRead or fmShareExclusive); 
 setStream := TFileStream.Create(setPath, fmCreate); 
 {建立文件流需要兩個參數: 參數 1 是路徑, 參數 2 是打開模式} 
 
 getStream.Position := 0; {流指針移到開始, 復制時從這裡開始} 
 setStream.CopyFrom(getStream, getStream.Size); {Copy 流} 
 {CopyFrom 的參數 2 是要復制的內容大小; 如果為 0 , 不管指針在什麼位置都會復制所有內容} 
 {CopyFrom 返回實際拷貝的字節數} 
 
 {這時硬盤上就有 set.jpg 文件, 與 get.jpg 一麼一樣} 
 {其實就是復制文件, 不過這裡我們是用文件流實現的} 
 
 getStream.Free; 
 setStream.Free; 
end; 

  TFileStream 打開模式與共享模式:

分類 參數 說明 打


式 fmCreate  建立文件, 如果存在則打開它。 fmOpenRead 只讀打開 fmOpenWrite 只寫打開 fmOpenReadWrite 讀寫打開 共


式 fmShareCompat 共享模式, 兼容 DOS fmShareExclusive  不允許別人以任何方式打開 fmShareDenyWrite  允許別人以只寫方式打開 fmShareDenyRead 允許別人以只讀方式打開 fmShareDenyNone 允許別人以任何方式打開


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved