1.读取
QString filename = "F:\\1.txt";
QFile afile(filename);
//判断是否存在
if(!afile.exists())
return;
if (!afile.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QTextStream astream(&afile); //用文本流读取文件
// while (!astream.atEnd()) {
// qDebug()<<astream.readLine()<<"66";
//}
for(int ii=0;!astream.atEnd();ii++){
//astream.atEnd() 文档结束符
QString tempstr = astream.readLine();
QStringList list1 = tempstr.split('\t');
//制表符分离
}
afile.close();
2.写入
QString filename = "F:\\1.txt";
QFile afile(filename);
//判断是否存在
if(!afile.exists())
return;
//QIODevice::Append 在文档后面增加 ,没有就是覆盖原文档
if (!afile.open(QIODevice::WriteOnly | QIODevice::Text |QIODevice::Append))
return;
QTextStream astream(&afile); //用文本流读取文件
astream<<"hello\n";
afile.close();
3. 使用QTextstream保存数据是乱码,原因是编码不一致导致错误
QString filename = "F:\\1.txt";
QFile afile(filename);
afile.open(QIODevice::WriteOnly | QIODevice::Text |QIODevice::Append)
QTextStream astream(&afile); //用文本流读取文件
//Qt 5 使用setCodec
astream.setCodec("UTF-8");
//添加BOM头
astream.setGenerateByteOrderMark(true);
afile.close();
4. 规范编写,修改QFile
QElapsedTimer timee;
timee.start();
QString filename ="F:\\1.txt";
QFile file(filename);
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream in(&file);
for(int ii=0;!in.atEnd();ii++)
{
QString str = in.readLine();
qDebug()<<str;
}
file.close();
}
else
qDebug()<<"false";
filename ="F:\\2.txt";
file.setFileName(filename);
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream in(&file);
for(int ii=0;!in.atEnd();ii++)
{
qDebug()<<in.readLine();
}
file.close();
}
else
qDebug()<<"false";
qDebug() <<timee.elapsed();

被折叠的 条评论
为什么被折叠?



