Qt Creator (6) 檔案系統

2021-09-25 09:39:45 字數 2166 閱讀 5530

目錄

檔案操作是應用程式必不可少的部分。qt 作為乙個通用開發庫,提供了跨平台的檔案操作能力。qt 通過qiodevice提供了對 i/o 裝置的抽象,這些裝置具有讀寫位元組塊的能力。下面是 i/o 裝置的類圖:

qiodevice:所有 i/o 裝置類的父類,提供了位元組塊讀寫的通用操作以及基本介面;

qfiledevice:qt5新增加的類,提供了有關檔案操作的通用實現。

qflie:訪問本地檔案或者嵌入資源;

qtemporaryfile:建立和訪問本地檔案系統的臨時檔案;

qbuffer:讀寫qbytearray, 記憶體檔案;

qprocess:執行外部程式,處理程序間通訊;

qabstractsocket:所有套接字類的父類;

qtcpsocket:tcp協議網路資料傳輸;

qudpsocket:傳輸 udp 報文;

qsslsocket:使用 ssl/tls 傳輸資料;

qfile提供了從檔案中讀取和寫入資料的能力。我們通常會將檔案路徑作為引數傳給qfile的建構函式。不過也可以在建立好物件最後,使用setfilename()來修改。qfile主要提供了有關檔案的各種操作,比如開啟檔案、關閉檔案、重新整理檔案等。我們可以使用qdatastream或qtextstream類來讀寫檔案,也可以使用qiodevice類提供的read()、readline()、readall()以及write()這樣的函式。值得注意的是,有關檔案本身的資訊,比如檔名、檔案所在目錄的名字等,則是通過qfileinfo獲取

readfile:

void widget::on_buttonread_clicked()

ui->textedit->settext(array);

}//關閉檔案

qdatastream提供了基於qiodevice的二進位制資料的序列化。資料流是一種二進位製流,這種流完全不依賴等。qdatastream既能夠訪問 c++ 基本型別,如 int、char、short 等,也可以訪問複雜的資料型別,例如自定義的類。實際上,qdatastream對於類的儲存,是將複雜的類分割為很多基本單元實現的。

writedata():
void widget::writedata()

}

在儲存的文件裡顯示亂碼,且顯示的格式為二進位制

readdata():
void widget::readdata()

}

在控制台上讓其顯示

qtextstream會自動將 unicode 編碼同作業系統的編碼進行轉換,這一操作對開發人員是透明的。它也會將換行符進行轉換,同樣不需要自己處理。qtextstream使用 16 位的qchar作為基礎的資料儲存單位,同樣,它也支援 c++ 標準型別,如 int 等。實際上,這是將這種標準型別與字串進行了相互轉換。

writedata():

void widget::writedata()

}

在儲存的文件裡顯示正常,顯示的格式為utf-8

readdata():

void widget::readdata()

}

在控制台上讓其顯示

6 檔案系統

root edaserver1 ls bin boot dev etc home lib lib64 lost found media misc mnt net opt proc root sbin selinux srv sys tftpboot tmp usr var bin所有賬號命令,二進位...

Xv6 檔案系統介面

參考 xv6 riscv book 1.4 file system system call description int chdir char dir 改變當前目錄 int mkdir char dir 建立新目錄 int open char file,o create 建立新檔案 int mkn...

4 14 檔案系統

為了說明檔案鏈結的概念,先要介紹unix檔案系統的基本結構。同時,了解i節點和指向i節點的目錄項之間的區別也是很有益的。目前,正在使用的unix檔案系統有多種實現。例如,solaris支援多種不同型別的磁碟檔案系統 傳統的基於bsd的unix檔案系統 稱為ufs 讀 寫dos格式軟盤的檔案系統 稱為...