小品QIODevice::Text参数:
QIODevice::Text |
0x0010 |
使用该选项后:
对于读:end-of-line结束符被转译为‘\n‘;
对于写:end-of-line结束符被转译本地编码方式对应的字符。比如,在Win32下,是‘\r\n‘
|
if (!fileRead.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "file open error!\r\n"; //return (0); } if (!fileWrite.open(QIODevice::WriteOnly | QIODevice::Text)) { qDebug() << "file not exist!\r\n"; }
可知,原二进制文件中的0x0D被视作结束符,写的时候忽略;0x0A被转译为Win32下的0x0D 0x0A(\r\n)。
去掉QIODevice::Text选项后,读写的数据是一致的(测试数据量8k多字节):if (!fileRead.open(QIODevice::ReadOnly)) { qDebug() << "file open error!\r\n"; //return (0); } if (!fileWrite.open(QIODevice::WriteOnly)) { qDebug() << "file not exist!\r\n"; }
原文地址:http://blog.csdn.net/u013686019/article/details/38759961