一、QByteArray、QString区别
QByteArray ba("刘备非");
QString str("刘备非");
qDebug() << ba.size() << str.size();
二、QFile
/*直接往文件中写入数据是不建议的,建议转换为字符数组后再存入文件*/
QFile file("chen.txt") ;
if( file.open( QIODevice::ReadWrite ) ) {
file.write( "good\r\t\n" ) ;
file.write( QByteArray("nice\n") ) ;
file.write( QString("hello\n").toLatin1().data() ) ;
}
file.close( ) ;
三、QBuffer
QBuffer buffer ;
buffer.open( QIODevice::ReadWrite ) ;
buffer.write( "abc" ) ;
buffer.close() ;
qDebug()<<buffer.buffer() ;
QBuffer buffer ;
buffer.open( QIODevice::ReadWrite ) ;
QPixmap pixmap("./1.png") ;
pixmap.save( &buffer , "PNG") ;
buffer.close() ;
qDebug()<<buffer.buffer().size() ;//qbytearray的格式,符合传输要求
QPixmap pixmap2 ;
pixmap2.loadFromData( buffer.buffer() ,"PNG") ;
QLabel *label = new QLabel ;
label->setPixmap( pixmap2 ) ;
QWidget *w = new QWidget ;
label->setParent( w ) ;
w->show() ;
四、QTextStream
QFile file("./chen.txt") ;
file.open( QIODevice::ReadWrite ) ;
QTextStream ts( &file ) ;
ts<<12<<"chen wei nan"<<1.3<<QString("abc") ;
file.close() ;
五、QDataStream
QFile file("./chen.txt") ;
file.open( QIODevice::ReadWrite ) ;
QDataStream ds( &file ) ;
ds<<12<<"chen wei nan"<<1.3<<QString("abc") ;
file.close() ;
QFile file("./chen.txt") ;
file.open( QIODevice::ReadWrite ) ;
QDataStream ds( &file ) ;
int i ;
char *buf ;
double d ;
QString str ;
ds>>i>>buf>>d>>str ;
qDebug() << i << buf << d << str << "endl" ;
file.close() ;
六、内存映射文件
QFile file("./1.png") ;
file.open(QIODevice::ReadWrite ) ;
file.seek( 64*1024 ) ;//拓展文件
file.write( "1" ) ;
file.close( ) ;
file.open( QIODevice::ReadWrite ) ;
uchar *ptr = file.map( 0 , 64*1024 ) ;//在内存中映射d空间大小
//write file
*ptr = 'a' ;
ptr[1] = 'b' ;
//read file
uchar ch = *ptr ;
//解除映射
file.unmap( ptr ) ;
qDebug() << ch ;
file.close() ;