QIODevice::WriteOnly 以只写模式打开文件。如果文件不存在,将创建新文件;如果文件已存在,其内容将被清空。 QIODevice::ReadWrite 以读写模式打开文件。 QIODevice::Append 以追加模式打开文件,写入的数据将追加到文件末尾,原有内容保留。 QIODevice::Truncate 打开文件时清空其内容。 根据需要我们可以一次性选择多个值,值和值之前使用 |来进行分割,比如: QIODevice::ReadOnly|QIODevice::Text表示只允许对文件进行读操作,读取文件时,会将行尾结束符转换为 ‘\n’; QIODevice::WriteOnly|QIODevice::Text表示只允许对文件进行写操作,将数据写入文件时,会将行尾结束符转换为本地格式; QIODevice::ReadWrite |QIODevice::Text| QIODevice::Append 但选择的多个值之前不能相互冲突,比如比如 Append 和 Truncate 不能同时使用。
ptr.open(QIODevice::ReadWrite | QIODevice::Text)) { return false; } QString text = ptr.readAll ptr.open(QIODevice::Append | QIODevice::Text)) { return false; } QByteArray str_bytes ::ReadOnly | QIODevice::Text)) { QTextStream in(&ptr); // 自动检测unicode编码,显示中文 write_file_stream(const QString &file_path, QString save){ QFile ptr(file_path); if(ptr.open(QIODevice ::Append | QIODevice::Text)) { QTextStream in(&ptr); in << save; } ptr.close()
file.open(QIODevice::ReadWrite | QIODevice::Text)) return; QTextStream out(&file); out file.open(QIODevice::ReadWrite | QIODevice::Text) 表示以读写的方式打开一个文件, 如果此文件不存在, 则自动创建一个。 | 表示关系的并列, 多个条件的存在, QIODevice::Text 表示存入的是文本。 QIODevice::Append 如果不加这个条件, 则直接覆盖原来文件中的所有内容, 从头开始写, 如果加了这个条件, 则从原来的基础上添加。
QIODevice::WriteOnly 以只写模式打开文件。如果文件不存在,将创建新文件;如果文件已存在,其内容将被清空。 QIODevice::ReadWrite 以读写模式打开文件。 QIODevice::Append 以追加模式打开文件,写入的数据将追加到文件末尾,原有内容保留。 QIODevice::Truncate 打开文件时清空其内容。 根据需要我们可以一次性选择多个值,值和值之前使用 |来进行分割,比如: QIODevice::ReadOnly|QIODevice::Text表示只允许对文件进行读操作,读取文件时,会将行尾结束符转换为 ‘\n’; QIODevice::WriteOnly|QIODevice::Text表示只允许对文件进行写操作,将数据写入文件时,会将行尾结束符转换为本地格式; QIODevice::ReadWrite |QIODevice::Text| QIODevice::Append 但选择的多个值之前不能相互冲突,比如比如 Append 和 Truncate 不能同时使用。
::ReadOnly 只读方式打开 * QIODevice::WriteOnly 写入方式打开 * QIODevice::ReadWrite 读写方式打开 * QIODevice ::Append 追加方式打开 * QIODevice::Truncate 截取方式打开 * QIODevice::Text 文本方式打开 */ if(false == this_file_ptr.open(QIODevice::ReadOnly | QIODevice::Text)) { std::cout << "打开失败" << std ::ReadOnly | QIODevice::Text))) { QByteArray byte_array; while(false == this_file_ptr.atEnd ::ReadWrite | QIODevice::Text)) { return; } //写入内容,注意需要转码,否则会报错 QByteArray write_string
(false == this_file_ptr.exists()) { return "None"; } if(false == this_file_ptr.open(QIODevice file_path, QString file_data){ QFile this_file_ptr(file_path); if(false == this_file_ptr.open(QIODevice ::WriteOnly | QIODevice::Text)) { return false; } QByteArray write_byte = file_data.toUtf8 ::WriteOnly | QIODevice::Text)) { return false; } QByteArray write_byte = file_data.toUtf8 ::WriteOnly | QIODevice::Text)) { return false; } QByteArray write_byte = file_data.toUtf8
managerReply->readAll()); // file->flush(); // file->close(); // } if(file->open(QIODevice void DownPages::downFinished() { file->flush(); file->close(); delete file; } file->open(QIODevice ::Append) 枚举值 描述 QIODevice::NotOpen 未打开 QIODevice::ReadOnly 以只读方式打开 QIODevice::WriteOnly 以只写方式打开 QIODevice ::ReadWrite 以读写方式打开 QIODevice::Append 以追加的方式打开,新增加的内容将被追加到文件末尾 QIODevice::Truncate 以重写的方式打开,在写入新的数据时会将原有数据全部清除 QIODevice::Text 在读取时,将行结束符转换成 \n;在写入时,将行结束符转换成本地格式,例如 Win32 平台上是 \r\n QIODevice::Unbuffered 忽略缓存
,QIODevice 的父类为 QObject QIODevice 是 Qt 中所有输入输出设备(input/output device,简称 I/O 设备)的基础类,I/O 设备就是能进行数据输入和输出的设备 QIODevice::NotOpen 没有打开设备 QIODevice::ReadOnly 以 只读 方式打开设备 QIODevice::WriteOnly 以 只写 方式打开设备 QIODevice ::ReadWrite 以 读写 方式打开设备 QIODevice::Append 以 追加 方式打开设备,数据写到文件末尾 QIODevice::Truncate 每次打开文件后重写文件内容,原内容将被删除 QIODevice::Text 在读文件时,行尾终止符会被转换为 ‘\n’;当写入文件时,行尾终止符会被转换为本地编码。 如:Win32上为 ‘\r\n’; QIODevice::Unbuffered 无缓冲形式打开文件,绕过设备中的任何缓冲区 QIODevice::NewOnly 文件存在则打开失败,不存在则创建文件
false == this_file_ptr.exists()) { return "None"; } if(false == this_file_ptr.open(QIODevice ::ReadOnly | QIODevice::Text)) { return "None"; } QString string_value = this_file_ptr.readAll file_path, QString file_data) { QFile this_file_ptr(file_path); if(false == this_file_ptr.open(QIODevice ::WriteOnly | QIODevice::Text)) { return false; } QByteArray write_byte = file_data.toUtf8 ::WriteOnly | QIODevice::Text)) { return false; } QByteArray write_byte = file_data.toUtf8
::NotOpen 0x0000 不打开 QIODevice::ReadOnly 0x0001 只读方式 QIODevice::WriteOnly 0x0002 只写方式,如果文件不存在则会自动创建文件 QIODevice::ReadWrite ReadOnly | WriteOnly 读写方式 QIODevice::Append 0x0004 此模式表明所有数据写入到文件尾 QIODevice::Truncate 0x0008 打开文件之前,此文件被截断,原来文件的所有数据会丢失 QIODevice::Text 0x0010 读的时候,文件结束标志位会被转为’\n’;写的时候,文件结束标志位会被转为本地编码的结束为 ,例如win32的结束位’\r\n’ QIODevice::UnBuffered 0x0020 不缓存 下面通过代码来看看QFile的使用: //example 1 QFile file file.open(QIODevice::ReadWrite)){ qDebug()<<"打开失败"; }else{ qDebug()<<"打开成功";
aFile.open(QIODevice::ReadOnly | QIODevice::Text)) return false; ui.textEdit->setPlainText(aFile.readAll aFile.open(QIODevice::WriteOnly | QIODevice::Text)) return false; QString str = ui.textEdit->toPlainText aFile.open(QIODevice::WriteOnly | QIODevice::Text)) return false; QTextStream aStream(&aFile); aFile.open(QIODevice::ReadOnly | QIODevice::Text)) return false; QTextStream aStream(&aFile); /
ptr.open(QIODevice::ReadWrite | QIODevice::Text)) { return false; } QString text ptr.open(QIODevice::Append | QIODevice::Text)) { return false; } QByteArray str_bytes ::ReadOnly | QIODevice::Text)) { QTextStream in(&ptr); // 自动检测unicode编码,显示中文 write_file_stream(const QString &file_path, QString save) { QFile ptr(file_path); if(ptr.open(QIODevice ::Append | QIODevice::Text)) { QTextStream in(&ptr); in << save; } ptr.close
file.open(QIODevice::ReadWrite | QIODevice::Text)) { qDebug() << "Cannot open file for writing file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Cannot open file for reading: file.open(QIODevice::WriteOnly | QIODevice::Text)) { qDebug() << "Cannot open file for writing ::WriteOnly | QIODevice::Text)) { QTextStream out(&file); out << "Hello, Qt5 file I/O! \n"; file.close(); } if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream
获取当前错误信息 void QAudioOutput::suspend(); //暂停 void QAudioOutput::resume(); //恢复 void QAudioOutput::start(QIODevice *device) //启动播放,参数是QIODevice(需要通过write成员写入pcm数据数组) QIODevice *QAudioOutput::start(); //打开设备并返回一个指向内部 QIODevice的指针,通过write()便可以直接向其写入pcm数据进行播放. 每播放一次音频数据所需多少个数据量 //periodSize用来防止缓冲区欠运行和确保不间断回放所需的数据量 3.初始化QAudioOutput 开始播放音频流只需使用QIODevice QFile sourceFile; QAudioOutput* audio; sourceFile.setFileName("/tmp/test.raw"); sourceFile.open(QIODevice
QFile Qt中所有与IO相关的类都继承于QIODevice,继承图如下所示: 其中QFile类便是用于文件操作的类 在QT中,将文件当做一种特殊的外部设备对待(比如:串口,usb等就是外部设备) QT //打开文件成功返回true,否则返回false // mode有: // QIODevice ::ReadOnly 、QIODevice::WriteOnly、QIODevice::ReadWrite // QIODevice::Append :写入的数据将会写在文件末尾 // QIODevice::Truncate :打开文件后,之前的内容将会消失(默认Truncate是打开的) //QIODevice::Text:以文本方式写入 Tang\n"); file.close(); } /*读数据*/ if( file.open(QIODevice::ReadOnly | QIODevice
二、输入输出设备类(QIODevice):文件操作的基石 2.1 QIODevice 核心作用 QIODevice是 Qt 中所有输入输出设备的 “万能接口”,无论是文件、网络 socket,还是内存缓冲区 2.3 关键打开模式(OpenMode) QIODevice的打开模式通过QIODevice::OpenModeFlag枚举定义,常用模式如下(可通过|组合使用): 模式枚举 说明 适用场景 QIODevice ::NotOpen 未打开(默认状态) - QIODevice::ReadOnly 只读模式 读取配置文件、日志文件 QIODevice::WriteOnly 只写模式 新建文件并写入数据 QIODevice (打开时清空原有内容) QIODevice::Text 文本模式 文本文件读写(自动转换换行符) QIODevice::Unbuffered 无缓冲模式 实时性要求高的场景(绕过缓冲区) QIODevice file.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)) { qDebug() << "文件打开失败
std::cout << "文件不存在" << std::endl; return 0; } /* * 文件打开属性包括如下 * QIODevice ::ReadOnly 只读方式打开 * QIODevice::WriteOnly 写入方式打开 * QIODevice::ReadWrite 读写方式打开 * QIODevice ::Append 追加方式打开 * QIODevice::Truncate 截取方式打开 * QIODevice::Text 文本方式打开 */ if(false == this_file_ptr.open(QIODevice::ReadOnly | QIODevice::Text)) { std::cout << "打开失败 this_file_ptr.exists()) { return; } // 打开失败 if(false == this_file_ptr.open(QIODevice
数据通常使用QDataStream或QTextStream进行读写,但您也可以调用qiodevice继承的函数read()、readLine()、readAll()和write()。 file.open(QIODevice::ReadOnly | QIODevice::Text)) return; while (! file.open(QIODevice::ReadOnly | QIODevice::Text)) return; QTextStream in(&file); while file.open(QIODevice::WriteOnly | QIODevice::Text)) return; QTextStream out(&file); out file.open(QIODevice::ReadOnly | QIODevice::Text)) return; QTextStream in(&file); QString
读数据 QFile file("inputFile.txt"); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { while ( 写数据 QFile file("outputFile.txt"); if (file.open(QIODevice::ReadWrite | QIODevice::Text)) { file.write
,QIODevice 的父类为 QObject QIODevice 是 Qt 中所有输入输出设备(input/output device,简称 I/O 设备)的基础类,I/O 设备就是能进行数据输入和输出的设备 QIODevice::NotOpen 没有打开设备 QIODevice::ReadOnly 以 只读 方式打开设备 QIODevice::WriteOnly 以 只写 方式打开设备 QIODevice ::ReadWrite 以 读写 方式打开设备 QIODevice::Append 以 追加 方式打开设备,数据写到文件末尾 QIODevice::Truncate 每次打开文件后重写文件内容,原内容将被删除 QIODevice::Text 在读文件时,行尾终止符会被转换为 ‘\n’;当写入文件时,行尾终止符会被转换为本地编码。 如:Win32上为 ‘\r\n’; QIODevice::Unbuffered 无缓冲形式打开文件,绕过设备中的任何缓冲区 QIODevice::NewOnly 文件存在则打开失败,不存在则创建文件