Qt文件

  • QIODevice:所有 I/O 设备类的父类,提供了字节块读写的通用操作以及基本接口;
  • QFlie:访问本地文件或者嵌入资源;
  • QTemporaryFile:创建和访问本地文件系统的临时文件;
  • QBuffer:读写QByteArray
  • QProcess:运行外部程序,处理进程间通讯;
  • QAbstractSocket:所有套接字类的父类;
  • QTcpSocket:TCP协议网络数据传输;
  • QUdpSocket:传输 UDP 报文;
  • QSslSocket:使用 SSL/TLS 传输数据;
  • QFileDevice:Qt5新增加的类,提供了有关文件操作的通用实现。

QProcessQTcpSocketQUdpSoctetQSslSocket是顺序访问设备。所谓“顺序访问”,是指它们的数据只能访问一遍:从头走到尾,从第一个字节开始访问,直到最后一个字节,中途不能返回去读取上一个字节;

QFileQTemporaryFileQBuffer是随机访问设备,可以访问任意位置任意次数,还可以使用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"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值