QT 文件读写

 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 差不多

可以指定写的编码,可查看文件;写的方式是连续无空格,无法分开读取,只能按行或全读还回字符串;

猜你喜欢

转载自blog.csdn.net/qq_40239482/article/details/79913120