網(wǎng)上有很多關(guān)于pos機寫文件失敗是什么意思,Qt之讀寫文件的知識,也有很多人為大家解答關(guān)于pos機寫文件失敗是什么意思的問題,今天pos機之家(www.afbey.com)為大家整理了關(guān)于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
pos機寫文件失敗是什么意思
1.思路讀寫文件的基本操作:
讀文件
寫文件
打開文件
打開文件
讀取文件
寫入文件
關(guān)閉文件
關(guān)閉文件
2.QFile實現(xiàn)讀寫文件QFile類提供讀寫文件的接口。 它的構(gòu)造函數(shù)如下: QFile(const QString & name) QFile(QObject * parent) QFile(const QString & name, QObject * parent) 通過它的構(gòu)造函數(shù)我們可以知道,可以直接在調(diào)用構(gòu)造函數(shù)的時候直接傳遞文件名給QFile類,這是常用的方法,或者我們先生成QFile對象,然后調(diào)用setFileName()方法來設(shè)置文件。 其中文件名中的路徑分隔符要求必須是’/’,其他分隔符QFile不支持。 然后再了解下QFile的常用函數(shù)以及打開文件的模式類型: QFile的常用函數(shù):
函數(shù)名
功能
copy()
復(fù)制文件
exists()
檢查文件是否存在
open()
打開文件
remove()
刪除文件
rename()
修改文件名
setFileName()
設(shè)置文件名
size()
文件大小
pos()
文件光標當前位置
seek()
設(shè)置文件光標位置
atEnd()
判斷當前是否為文件尾
read()
讀取文件內(nèi)容
close()
關(guān)閉文件
文件打開模式
【領(lǐng)QT開發(fā)教程學(xué)習(xí)資料,點擊下方鏈接莬費領(lǐng)取↓↓,先碼住不迷路~】
點擊→領(lǐng)取「鏈接」
模式
值
描述
QIODevice::NotOpen
0x0000
不打開
QIODevice::ReadOnly
0x0001
只讀方式
QIODevice::WriteOnly
0x0002
只寫方式,如果文件不存在則會自動創(chuàng)建文件
QIODevice::ReadWrite
ReadOnly | WriteOnly
讀寫方式
QIODevice::Append
0x0004
此模式表明所有數(shù)據(jù)寫入到文件尾
QIODevice::Truncate
0x0008
打開文件之前,此文件被截斷,原來文件的所有數(shù)據(jù)會丟失
QIODevice::Text
0x0010
讀的時候,文件結(jié)束標志位會被轉(zhuǎn)為’\’;寫的時候,文件結(jié)束標志位會被轉(zhuǎn)為本地編碼的結(jié)束為,例如win32的結(jié)束位’\\’
QIODevice::UnBuffered
0x0020
不緩存
下面通過代碼來看看QFile的使用:
//example 1 QFile file("test.csv"); //已讀寫方式打開文件, //如果文件不存在會自動創(chuàng)建文件 if(!file.open(QIODevice::ReadWrite)){ //ReadOnly文件不存在,打開失敗 //WriteOnly文件不存在,會自動創(chuàng)建文件 //ReadWrite文件不存在,會自動創(chuàng)建文件 //Append文件不存在,會自動創(chuàng)建文件 //Truncate文件不存在,打開失敗 //Text文件不存在,打開失敗 //Unbuffered文件不存在,打開失敗 qDebug()<<"打開失敗"; }else{ qDebug()<<"打開成功"; } //操作文件 //關(guān)閉文件 file.close();
寫文件
//example 2 QFile file("test.csv"); //判斷文件是否存在 if(file.exists()){ qDebug()<<"文件已存在"; }else{ qDebug()<<"文件不存在"; } //已讀寫方式打開文件, //如果文件不存在會自動創(chuàng)建文件 if(!file.open(QIODevice::ReadWrite)){ qDebug()<<"打開失敗"; }else{ qDebug()<<"打開成功"; } //獲得文件大小 qint64 pos; pos = file.size(); //重新定位文件輸入位置,這里是定位到文件尾端 file.seek(pos); QString content = "welcome to BeiJing"; //寫入文件 qint64 length = -1; length = file.write(content.toLatin1(),content.length()); if(length == -1){ qDebug()<<"寫入文件失敗"; }else{ qDebug()<<"寫入文件成功"; } //關(guān)閉文件 file.close();
控制臺運行結(jié)果:
打開文件看看里面的內(nèi)容:
正是我們程序中寫入的內(nèi)容。
讀文件 我們現(xiàn)在test.csv文件內(nèi)準備兩行數(shù)據(jù)
代碼如下:
QFile file("test.csv"); //判斷文件是否存在 if(file.exists()){ qDebug()<<"文件已存在"; }else{ qDebug()<<"文件不存在"; } //已讀寫方式打開文件, //如果文件不存在會自動創(chuàng)建文件 if(!file.open(QIODevice::ReadWrite)){ qDebug()<<"打開失敗"; }else{ qDebug()<<"打開成功"; } //讀取文件 int line = 1; //判斷文件是否已經(jīng)讀到末尾了 while(!file.atEnd()){ char buffer[1024]; //讀取一行數(shù)據(jù) qint64 length = file.readLine(buffer,1024); if(length != -1){ qDebug()<<line++<<":"<<buffer; } } //關(guān)閉文件 file.close();
控制臺輸出結(jié)果如下:
和我們開始文件中準備的內(nèi)容一致,表明已成功讀取。
以上就是關(guān)于pos機寫文件失敗是什么意思,Qt之讀寫文件的知識,后面我們會繼續(xù)為大家整理關(guān)于pos機寫文件失敗是什么意思的知識,希望能夠幫助到大家!
