天天看點

Qt中如何對檔案進行讀寫

1 widget.h添加頭檔案      
#include <QWidget>      
#include <QFile>      
#include <QString>      
#include <QtCore>      
#include <QDebug>      
#include <QtGui>      
#include <QTextStream>      
2 聲明 Write 和 Read 函數      
void Write(QString filename);      
void Read(QString filename);      
3 widget.cpp檔案裡實作函數      
void Widget::Write(QString filename) {     QFile mFile(filename);     if(!mFile.open(QFile::WriteOnly|QFile::Text))     {         qDebug()<<"cannot open file for write";         return;     }     QTextStream out(&mFile);     out<<"hello qt";
    mFile.flush();
    mFile.close();
}

void Widget::Read(QString filename)
{
    QFile mFile(filename);
    if(!mFile.open(QFile::ReadOnly|QFile::Text))
    {
        qDebug()<<"cannot open file for read";
        return;
    }
    QTextStream in(&mFile);
    QString mText=in.readAll();
    qDebug()<<mText;

    mFile.flush();
    mFile.close();
}
      
4 在widget的構造函數裡調用函數      
QString filename="./test.ini";      
Write(filename);  //不存在時,會自動建立并覆寫同名舊檔案      
Read(filename);  //檔案需存在      
5 檔案的删除      
QString fileRecord = "/test.ini";      
QFile file;      
file.remove(fileRecord);      
6 通過lineEdit寫入檔案,      
QString text= ui->lineEdit->text();      
QString filename="./test.ini";      
QFile mFile(filename);      
if(mFile.open(QIODevice::Append))     //方式為追加      
{      
QTextStream out(&mFile);      
out<<text;      
out<<"\r\n";  // window換行   Linux下位"\n"      
}      
mFile.flush();      
mFile.close();      
7 讀取時,不包括"\n"      
QStringList lines;      
QFile file( filename );      
if ( file.open(QFile::Append))      
{      
QTextStream stream( &file );      
QString line;      
while ( !stream.atEnd() )      
{      
line = stream.readLine(); // 不包括“\n”的一行文本      
ui->textEdit->setText(line);      
lines += line;      
}      
file.flush();      
file.close();      
}      

繼續閱讀