1. ファイルの読み込み
ボタンをクリックしてpushButton
ファイル ダイアログ ボックスに入り、ファイルを選択します。上のlineEdit
ボックスにはファイル パスが保存され、下のボックスにはtextEdit
ファイルの内容が保存されます。
1.1. utf-8 ファイルの読み取り (デフォルト)
方法:
- ファイルを開くダイアログのパス—
getOpenFileName();
- ファイルを読み取る——
file();
- ファイルを開く方法——
open();
- ファイルを読み取る——
readAll();
- ダイアログテキストの設定—
setText();
- ファイルを閉じてください——
close();
//点击选取文件按钮,弹出文件对话框
connect(ui->pushButton,&QPushButton::clicked,[=](){
QString path = QFileDialog::getOpenFileName(this,"打开文件","F:\\Study\\Qt\\Projects\\13_Qt_QFile");
//将路径放入到lineEdit中
ui->lineEdit->setText(path);
//读取内容,放入到 textEdit中
//QFile默认的支持格式是 utf-8
QFile file(path);//参数就是读取文件的路径
//设置打开方式
file.open(QIODevice::ReadOnly);
QByteArray array = file.readAll();
//将读取到的数据 放入textEdit中7
ui->textEdit->setText(array);
//对文件对象进行关闭
file.close();
効果は次のとおりです。
1.2. 他の種類のファイル (gbk など) を読み取る
utf-8の読み込みをベースに、エンコード形式のクラスを追加します。
//编码格式类
QTextCodec *codec = QTextCodec::codecForName("gbk");
次に、テキストが書き込まれる配列を gbk に設定します。
ui->textEdit->setText(codec->toUnicode(array));
最終的なコードは次のとおりです。
//点击选取文件按钮,弹出文件对话框
connect(ui->pushButton,&QPushButton::clicked,[=](){
QString path = QFileDialog::getOpenFileName(this,"打开文件","F:\\Study\\Qt\\Projects\\13_Qt_QFile");
//将路径放入到lineEdit中
ui->lineEdit->setText(path);
//编码格式类
QTextCodec *codec = QTextCodec::codecForName("gbk");
//读取内容,放入到 textEdit中
//QFile默认的支持格式是 utf-8
QFile file(path);//参数就是读取文件的路径
//设置打开方式
file.open(QIODevice::ReadOnly);
QByteArray array;
while(!file.atEnd()){
array += file.readLine();//按行读
}
//将读取到的数据 放入textEdit中7
ui->textEdit->setText(codec->toUnicode(array));
//对文件对象进行关闭
file.close();
効果は次のとおりです。
ファイルが gbk 形式で正常に開かれたことがわかります。
2. ファイル書き込み
ファイルの末尾にテキストを追加するだけです
//进行写文件
file.open(QIODevice::Append);//用追加的方式写
file.write("啊啊啊啊啊");
file.close();
効果は次のとおりです。
追加が成功したことがわかります (これは複数回実行したためです)
3. ファイル情報の表示
ファイルのコンテンツを取得することに加えて、ファイルの特定の情報も表示したいので、QFileInfo
ファイル情報クラスを通じてこれを行うことができます。
- ファイルサイズ -
size();
- ファイル拡張子--
suffix();
- ファイル名 -
fileName();
- ファイルパス -
filePath();
- ファイル作成日 -
birthTime();
- ファイルが最後に変更された日付 -
lastModified();
//QFileInfo文件信息类
QFileInfo info(path);
qDebug()<<"大小"<<info.size()<<"后缀名"<<info.suffix()<<"文件名称"<<info.fileName()<<"文件路径"<<info.filePath();
qDebug()<<"创建日期"<<info.birthTime().toString("yyyy/MM/dd hh:mm:ss");
qDebug()<<"最后修改日期"<<info.lastModified().toString("yyyy-MM-dd hh:mm:ss");
効果は次のとおりです。
補充:
- ファイル情報に関するその他の機能については、Qt Assistant を参照してください。
- 純粋な日付表示を得るには日付を変換する必要があります。そうしないと、他の追加情報が表示されます。日付の具体的な表示形式は自分で設定できます
yyyy-MM-dd hh:mm:ss
。Qtアシスタントを参照してください。