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"
|