QString path=QFileDialog::getOpenFileName(this,"open","../","txt(*.txt);;all(*.*)"); //获取路径,两个分号
if(!path.isEmpty())
{
QFile file(path); //建立文件对象
QByteArray arraytmp; //字节数组
file.open(QIODevice::ReadOnly); //设置读取方式
if(file.isOpen())
{
arraytmp=file.readAll(); //一次性读取
// 一次读取一行
while(!file.atEnd())
{
arraytmp +=file.readLine();
}
}
ui->textEdit->setText(QString(arraytmp.data())); //显示读取内容 ,字节数组转char* 再转QString
file.close();
}
写操作:
QString path=QFileDialog::getSaveFileName(this,"save","../","txt(*.txt);;all(*.*)");
if(!path.isEmpty())
{
QFile file(path);
//QByteArray arraytmp;
file.open(QIODevice::WriteOnly);
if(file.isOpen())
{
QString str=ui->textEdit->toPlainText(); //获取编辑区内容
file.write(str.toUtf8());
}
file.close();
QString to char *
QString to string to char *
QString str;
str.toStdString().data();
char * 可以直接转QString
QString (str);
byteArray to char *
array.data();
QString to bytearray:
获取文件信息
QFileInfo info(path);
qDebug()<<info.created().toString("yyyy-MM-dd HH-mm-ss"); //datetime 转为string
qDebug()<<info.fileName().toUtf8().data();str.toUtf8();
使用QDatastream 进行读写
QFile file(path);
QDatastream stream(&file);
关键步骤:
先写:
stream<<QString("你好")<<1235;
再读:
QString str;
int a;
stream>>str>>a;
QTextstream 文本流读写和QDataStream 差不多
可以指定写的编码,可查看文件;写的方式是连续无空格,无法分开读取,只能按行或全读还回字符串;