Qt文件
-
QIODevice
:所有 I/O 设备类的父类,提供了字节块读写的通用操作以及基本接口; -
QFlie
:访问本地文件或者嵌入资源; -
QTemporaryFile
:创建和访问本地文件系统的临时文件; -
QBuffer
:读写QByteArray
; -
QProcess
:运行外部程序,处理进程间通讯; -
QAbstractSocket
:所有套接字类的父类; -
QTcpSocket:TCP
协议网络数据传输; -
QUdpSocket
:传输 UDP 报文; -
QSslSocket
:使用 SSL/TLS 传输数据; -
QFileDevice:Qt5
新增加的类,提供了有关文件操作的通用实现。
QProcess
、QTcpSocket
、QUdpSoctet
和QSslSocket
是顺序访问设备。所谓“顺序访问”,是指它们的数据只能访问一遍:从头走到尾,从第一个字节开始访问,直到最后一个字节,中途不能返回去读取上一个字节;
QFile
、QTemporaryFile
和QBuffer
是随机访问设备,可以访问任意位置任意次数,还可以使用QIODevice::seek()
函数来重新定位文件访问位置指针。
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QFile file("in.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug() << "Open file failed.";
return -1;
} else {
while (!file.atEnd()) {
qDebug() << file.readLine();
}
}
QFileInfo info(file);
qDebug() << info.isDir();//判断文件是否是目录
qDebug() << info.isExecutable();//判断文件是否是可执行的
qDebug() << info.baseName();
qDebug() << info.completeBaseName();
qDebug() << info.suffix();
qDebug() << info.completeSuffix();
return app.exec();
}
2
3
4
5
|
QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.baseName(); // base = "archive"
QString cbase = fi.completeBaseName(); // base = "archive.tar"
QString ext = fi.suffix(); // ext = "gz"
QString ext = fi.completeSuffix(); // ext = "tar.gz"
|
2
3
4
5
|
QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.baseName(); // base = "archive"
QString cbase = fi.completeBaseName(); // base = "archive.tar"
QString ext = fi.suffix(); // ext = "gz"
QString ext = fi.completeSuffix(); // ext = "tar.gz"
|
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// Widget w;
// w.setFixedSize(400,400);
// w.show();
QFile file("file.dat");
file.open(QIODevice::WriteOnly);
QDataStream out(&file);
out << QString("the answer is");
out << (qint32)42;
file.close();
file.setFileName("file.dat");
file.open(QIODevice::ReadOnly);
QDataStream in(&file);
QString str;
qint32 num;
///你必须按照写入的顺序,将数据读取出来
in >> str >> num;
qDebug()<<str<<num;
return a.exec();
}
2
3
4
5
|
QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.baseName(); // base = "archive"
QString cbase = fi.completeBaseName(); // base = "archive.tar"
QString ext = fi.suffix(); // ext = "gz"
QString ext = fi.completeSuffix(); // ext = "tar.gz"
|