catalog
Base
QFile file;
file.setFileName("F:/1.txt");
'void setFileName(QString)只是: 关联文件 '
'此时,file只能进行: 获取大小size(),重命名,删除等 <外围操作>'
'对于:读取/修改该文件<里面>的内容, 此时是没有权限的!!! '
file.setFileName("a-c!~b3$#");
'这也是可以的!!! ·他不会进行检查, 即使没有这个文件 也是没问题的!!!'
if(file.exists()){ '虽然此时这个文件没有open,但可以进行<外围操作>'
file.remove(); '如果文件存在,就给删除掉 '
}
-------------------------------------------------
读 文本文件
'文本文件: txt, cpp, hpp, html, xml'
file.setFileName("F:/1.txt");
bool = file.open( QFile::ReadOnly );
' 如果是没有<F:/1.txt>文件, open是会失败的!!! '
' 即open( QFile::ReadOnly )必须保证: 这个文件是存在的!! '
if(file.open(QFile::ReadOnly)){
char buf[1024];
memset(buf, '#', sizeof(buf));
int _siz = file.read(buf, sizeof(buf));
'QIODevice::read(char*, qint64)是: 读取文件<所有>的数据'
'_siz是:实际读了多少字节, qint64是 你限定最大读的字节'
'一般,_siz == file.size()'
' 你txt里是: (1 1)回车(1) <1是49,空格是32> '
'/r回车是让光标回到当前行的开头,/n换行是让光标<下移动一格>'
' Windows下: 键盘每打一个<回车>,都是<回车/r(13) + 换行/n(10)>'
' 在Linus下: 键盘每打一个<回车>, 都是一个<换行/n(10)> '
'而且linux下, 即使最后一行没有回车,他会自动加上回车/n '
'即在Windows下是:49, 32, 49, 13, 10, 49 <file.size()=_siz=6> '
'而在Linus是: 49, 32, 49, 10, 49, 10 <_siz = 6> '
'注意,最后的10 是系统自动加的!!! '
}
写 文本文件
file.setFileName("/root/1.txt");
if(file.open( QFile::WriteOnly )){
'如果没有1.txt文件, 这个文件是会创建出来的!!!'
' 如果有,则他会把原文件 给清空!!! '
}