首页 > 代码库 > [Qt学习篇]小品QIODevice::Text参数
[Qt学习篇]小品QIODevice::Text参数
小品QIODevice::Text参数:
QIODevice::Text | 0x0010 | 使用该选项后: 对于读:end-of-line结束符被转译为‘\n‘; 对于写:end-of-line结束符被转译本地编码方式对应的字符。比如,在Win32下,是‘\r\n‘ |
在使用QIODevice::Text选项读写二进制文件时,由于经过上述转译,造成读写数据不一致,测试示例如下:
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"; }
[Qt学习篇]小品QIODevice::Text参数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。