核心類別
QFile:檔案存取。
QTextStream:文字流編碼/解碼支援。
開啟模式
IO_ReadOnly、IO_WriteOnly、IO_ReadWrite(慎用,易產生髒資料)。
IO_Append:附加模式(配合 WriteOnly)。
IO_Translate:Windows 換行 \r\n 轉 \n。
寫入範例
QFile f(filename);
f.open(IO_WriteOnly);
QTextStream s(&f);
s << "Hello, world!" << "\n";
f.close();
讀取範例
QFile f(filename);
f.open(IO_ReadOnly);
QTextStream t(&f);
while (!t.atEnd()) {
QString line = t.readLine();
// 處理 line
}
f.close();
檔案對話框
// 開啟檔案
QString fileName = QFileDialog::getOpenFileName(QString::null, QString::null, this);
QFile f(fileName);
f.open(IO_ReadOnly);
QTextStream t(&f);
textEdit->setText(t.readAll());
f.close();
// 儲存檔案
QString fileName = QFileDialog::getSaveFileName(QString::null, QString::null, this);
QFile f(fileName);
f.open(IO_WriteOnly);
QTextStream t(&f);
t << textEdit->text();
f.close();
注意事項
- Qt 5/6 使用
QIODevice::OpenModeFlag(如 QIODevice::ReadOnly),舊版 IO_ReadOnly 為相容宏。
QTextStream 預設 UTF-8,可用 setCodec 指定編碼。
- 大檔案建議分塊讀寫或使用
QFile::map 記憶體映射。