文本文件的读写
//filewidgets.h
#ifndef FILELISTWIDGET_H
#define FILELISTWIDGET_H
#include <QWidget>
#include <QFile>
#include <QPushButton>
#include <QLineEdit>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QTextEdit>
class FileListWidget : public QWidget
{
Q_OBJECT
public:
explicit FileListWidget(QWidget *parent = 0);
private:
QFile *m_file;
QPushButton *m_btnSave;
QPushButton *m_btnLoad;
QTextEdit *m_txtedit;
signals:
public slots:
void saveClicked();
void loadClicked();
};
#endif // FILELISTWIDGET_H
//filewidgets.cpp
#include "filelistwidget.h"
#include <QTextStream>
FileListWidget::FileListWidget(QWidget *parent) :
QWidget(parent)
,m_file(new QFile("listitems.txt"))
,m_btnSave(new QPushButton("Save"))
,m_btnLoad(new QPushButton("Load"))
,m_txtedit(new QTextEdit)
{
QVBoxLayout *layoutAll=new QVBoxLayout;
QHBoxLayout *bottom=new QHBoxLayout;
bottom->addWidget(m_btnSave);
bottom->addWidget(new QLineEdit("listitems.txt"));
bottom->addWidget(m_btnLoad);
layoutAll->addWidget(m_txtedit);
layoutAll->addLayout(bottom);
setLayout(layoutAll);
connect(m_btnLoad,SIGNAL(clicked()),this,SLOT(loadClicked()));
connect(m_btnSave,SIGNAL(clicked()),this,SLOT(saveClicked()));
}
void FileListWidget::saveClicked()
{
if(!m_file->open(QIODevice::WriteOnly))//|QIODevice::Append
{
qDebug("Writing Error!");
return;
}
else
{
QString content;
content=m_txtedit->toPlainText();
QTextStream *out=new QTextStream(m_file);
*out<<content;
}
m_file->close();
}
void FileListWidget::loadClicked()
{
m_file->open(QIODevice::ReadOnly);//|QIODevice::Text
QTextStream *in=new QTextStream(m_file);
QString temp(""),line;
QStringList list;
line=in->readLine();
list<<line;
temp=temp+line+"/n";
// while(!m_file->atEnd()) //meet '/n' return eof
while(line!=NULL)
{
line=in->readLine();
temp=temp+line+"/n";
list<<line;
}
m_txtedit->setPlainText(temp);
m_file->close();
// STL 风格的
QStringList::const_iterator constIterator;
for (constIterator = list.constBegin(); constIterator != list.constEnd();++constIterator)
qDebug("Item: %s", (*constIterator).toLocal8Bit().constData());
delete in;
}
//main.cpp
#include <QApplication>
#include "filelistwidget.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
FileListWidget *dlg=new FileListWidget;
dlg->show();
return a.exec();
}
程序运行结果: