博主今天在windows读取文件时发现个问题,明明写入了\r\n,但是读出来却只有\n。以前都没注意过这个问题的。
测试
写入文件
QFile file("./测试.txt");
file.open(QIODevice::WriteOnly| QFile::Truncate );
file.write("测试\r\n是否在");
file.close();
读取文件
QFile file("./测试.txt");
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug()<<"Can't open the file!"<<endl;
return;
}
QByteArray _AllData= file.readAll();
qDebug()<<_AllData;
结果:
测试\n是否在
解决方法
不管是用QTextStream写入然后再读出,\r还是会消失???
通过发现是QIODevice::Text的问题
When reading, the end-of-line terminators are translated to ‘\n’。所以怪不得我的\r不见了
解决方案:
简单粗暴把去掉QIODevice::Text
QFile file("./测试.txt");
if(!file.open(QIODevice::ReadOnly ))
{
qDebug()<<"Can't open the file!"<<endl;
return;
}
QByteArray _AllData= file.readAll();
qDebug()<<_AllData;
结果:
测试\r\n是否在