QT学习之关于文件处理 (2011-10-13 21:58)
1.QT中打开文件(类似C中的文件操作)
- QFile dataFile("dataFile.txt");
- if (!dataFile.open(QFile::ReadOnly|QIODevice::Text))
- {
- ui->label_2->setText("open error");
- }
打开文件后,使用QTextString或QDataString作为文件读写的接口
- QTextStream data(&dataFile);
2.读取文件内容
想要读取多行内容,但要注意remove('\n')
- QStringList fonts;
- while (!data.atEnd())
- {
- line = data.readLine();
- line.remove('\n');
- fonts<<line;
- };
3关于文件默认存放地点,及当前目录
刚开始直接读取文件时,我把要读取的文件放在了工程代码文件夹下,结果总是读取错误,后来发现上一级目录下还有一个相关文件夹。
如你的工程文件夹F:\QT\QTworkspace\Clock 要读取的文件放在这里要写出绝对路径
运行编译时生成的目标文件文件夹F:\QT\QTworkspace\Clock-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK____ 这里就是当前文件夹
4.设置文件读写时编码格式
QT在windows下使用UTF-8编码格式,使用中文时,写入读取要设置正确格式
- QTextStream in(&addItem);
- QTextCodec *codec=QTextCodec::codecForName("UTF-8");
- in.setCodec(codec);
5.windows下txt文档的换行符是由两个字符"\r\n"构成的,,而linux下的文档的换行符号是'\n'
- in<<QString<<"\r\n";
6.文件内容清空
- QFile File("dataFile.txt");
- File.resize(0);