qt中緩衝區的概念
1、緩衝區的本質是一段連續的儲存空間
2、qbuffer是qt中緩衝區相關的類
3、在qt中可以將緩衝區看作一種特殊的i/o裝置
4、檔案流輔助類可以直接用於緩衝區操作
qbuffer類:
1、qbuffer類為qbytearray提供了乙個qiodevice介面,它允許使用qiodevice介面來訪問qbytearray
2、qbytearray被qbuffer視為乙個標準的可隨機訪問的檔案
3、預設的,當建立乙個qbuffer時會自動在內部自動建立乙個qbytearray緩衝區,也可以通過成員函式
void
setbuffer( qbytearray * bytearray )
或構造qbuffer時傳遞指向現有的qbytearray的指標來使用現有的qbytearray
4、通過成員函式
qbytearray &
buffer()
可直接訪問qbytearray緩衝區
qbuffer緩衝區使用場合
2、快取外部裝置中的資料返回
3、資料讀取速度小於資料寫入速度
else if( type == 1 )
else if( type == 2 )
buffer.close(); //記得關閉
}} void read_buffer(qbuffer& buffer)
else if( type == 1 )
else if( type == 2 )
buffer.close();
}} int main(int argc, char *argv)
目錄操作
qdir是qt中功能強大的目錄操作類
1、qt中的目錄分隔符統一使用』/』
2、qdir能夠對目錄進行任意操作(建立、刪除、重新命名)
3、qdir能夠獲取指定目錄中的所有條目(檔案和資料夾)
4、qdir能夠使用過濾字串
5、qdir可以使用絕對路徑或者相對路徑來指定目錄
常用成員函式:
qstring
absolutefilepath( const qstring & filename ) const
獲取檔案filename 絕對路徑
qstring
absolutepath() const
獲取qdir代表的絕對路徑
bool
cd( const qstring & dirname )
更改qdir指定的目錄為dirname
uint
count() const
獲取qdir指定的目錄下所有條目(檔案、目錄、符號鏈結等)數
qdir
current() [static]
qstring
currentpath() [static]
qstring
dirname() const
獲取目錄名(不是路徑)
qfileinfolist entryinfolist( const qstringlist & namefilters, filters
filters = nofilter, sortflags
sort = nosort ) const
qfileinfolist
entryinfolist( filters filters = nofilter, sortflags sort = nosort ) const
獲取qdir指定的目錄下所有條目的qfileinfo物件鍊錶,引數filters 、filters 、sort 指定過濾器與排序,具體檢視列舉變數enum qdir::filter、enumqdir::sortflag
qstringlist qdir::entrylist( const qstringlist & namefilters, filters
filters = nofilter, sortflags
sort = nosort ) const
qstringlist
entrylist( filters filters = nofilter, sortflags sort = nosort ) const
獲取dir指定的目錄下所有條目的名字的鍊錶,引數filters 、filters 、sort 指定過濾器與排序,具體檢視列舉變數enumqdir::filter、enum qdir::sortflag
bool
exists( const qstring & name ) const
檔案name 是否存在
bool
exists() const
dir指定的目錄是否存在
void test_dir()
if( dir.exists(path) )
//2.連線狀態訊號到槽函式
watcher::watcher(qobject*parent):qobject(parent)
//3.加入受監控的檔案或目錄
void watcher::addpath(qstring path)
#ifndef _watcher_h_
#define _watcher_h_
#include #include class watcher : public qobject //為了使用訊號與槽機制;
#endif // watcher_h
#include "watcher.h"
#include watcher::watcher(qobject *parent) :qobject(parent)
void watcher::statuschanged(const qstring&path) //此處的path是被監視的檔案路徑,為qt內部傳參
void watcher::addpath(qstring path)
//注意:如果同時監視檔案和資料夾,當同時刪除檔案與資料夾時,只會觸發乙個槽函式
int main(int argc, char *argv)
宣告:此文根據 狄泰學院唐老師的《qt實驗分析教程》創作
檔案操作 清空緩衝區
在進行輸入輸出操作或者檔案讀寫時,由於涉及到緩衝區的使用,可能遇到一些問題。例如,scanf 函式用於從stdin輸入資訊,在從標準輸入緩衝區讀取資訊時,往往以 n 作為結束輸入的標誌,但是換行符 n 仍然殘留在緩衝區中,下次再次從標準輸入讀取資訊時,殘留的換行符 n 會被當做有效資訊讀取,即,上一...
緩衝區方式讀寫操作
驅動程式建立裝置物件一共有三種讀寫方式,分別是緩衝區讀寫 直接方式讀寫和其他方式讀寫。這三種方式對應的裝置物件的flags子域分別是do buffered io do direct io和0。為什麼要設定緩衝區讀寫方式?讀寫操作一般由writefile或readfile函式引起,以writefile...
Vim 檔案與緩衝區以及操作
這裡有更好的閱讀體驗 檔案是儲存在硬碟上的,而緩衝區是在記憶體中,開啟乙個檔案,就是把檔案讀入到乙個緩衝區中,編輯檔案 緩衝區 後,二者內容 記憶體和硬碟 會出現差別,儲存檔案後,會把記憶體中的資料寫回硬碟。緩衝區列表使用ls命令檢視開啟的檔案 切換緩衝區 通過命令切換緩衝區 命令 效果bprevi...