/* 只是简单的记录一下
* 这里QFile 直接指定路径 没有使用 QFileDialog 来获取路径
*/
#include "mywidget.h"
#include "ui_mywidget.h"
#include <QDataStream>
#include <QFile>
#include <QDebug>
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::MyWidget)
{
ui->setupUi(this);
writeData();
readData();
}
MyWidget::~MyWidget()
{
delete ui;
}
void MyWidget::writeData()
{
//创建文件对象
QFile file("../test.txt");
//打开文件
bool isOk = file.open(QIODevice::WriteOnly);
if(isOk == true)
{
//创建数据流 与文件相关联
//往数据流里写数据 就相当于往文件里写数据
QDataStream data(&file);
data << "这是一首小情歌" << 250;
}
//关闭文件
file.close();
}
void MyWidget::readData()
{
QFile file("../test.txt");
//以只读方式打开
bool isOk = file.open(QIODevice::ReadOnly);
if(isOk == true)
{
QString str;
int num;
QDataStream data(&file);
data >> str >> num;
qDebug() << str.toUtf8().data() << " "<< num;
}
file.close();
}
QTextStream
#include "mywidget.h"
#include "ui_mywidget.h"
#include <QFile>
#include <QTextStream>
#include <QDebug>
#include <QFileDialog>
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::MyWidget)
{
ui->setupUi(this);
// 调用写入数据的函数
writeData();
// 调用读取数据的函数
readData();
}
void MyWidget::writeData()
{
// 创建一个名为"a.txt"的文件对象,相对于当前工作目录的上一级目录
QFile file("../a.txt");
// 尝试以只写模式打开文件
bool isOk = file.open(QIODevice::WriteOnly);
if (true == isOk)
{
// 创建一个文本流对象,用于写入文件
QTextStream stream(&file);
// 设置文本编码为UTF-8
stream.setCodec("UTF-8");
// 向文件中写入字符串和整数
stream << QString("这是一首小情歌") << 250;
}
// 关闭文件
file.close();
}
void MyWidget::readData()
{
// 创建一个名为"a.txt"的文件对象,相对于当前工作目录的上一级目录
QFile file("../a.txt");
// 尝试以只读模式打开文件
bool isOk = file.open(QIODevice::ReadOnly);
if (true == isOk)
{
// 创建一个文本流对象,用于从文件中读取数据
QTextStream stream(&file);
// 设置文本编码为UTF-8
stream.setCodec("UTF-8");
QString str;
int a;
// 从文件中读取字符串和整数
stream >> str >> a;
// 输出读取到的数据到调试窗口
qDebug() << str.toUtf8().data() << a;
}
// 关闭文件
file.close();
}
MyWidget::~MyWidget()
{
delete ui;
}
void MyWidget::on_pushButton_clicked()
{
// 打开文件对话框,允许用户选择文件
QString path;
path = QFileDialog::getOpenFileName(this, "打开文件", "../a.txt");
if (path.isEmpty() == false)
{
// 创建一个文件对象,并打开用户选择的文件
QFile file(path);
// 尝试以只读模式打开文件
bool isOk = file.open(QIODevice::ReadOnly);
if (true == isOk)
{
// 创建一个文本流对象,用于从文件中读取数据
QTextStream stream(&file);
// 设置文本编码为UTF-8
stream.setCodec("UTF-8");
// 读取文件中的所有文本并显示在文本编辑框中
QString str = stream.readAll();
ui->textEdit->setText(str);
}
// 关闭文件
file.close();
}
}