Qt写入文件失败,啊啊啊,原来是这个错误!

QFIle *localFile = new QFile(fileName);
if(!localFile->open(QFile::WriteOnly))
{
  qDebug()<<"open file error";
  QMessageBox::information(this,"","open file error");
  return ;
}
文件创建和打开都是成功的。

if(bytesReceived < totalBytes)
{
  bytesReceived += tempConnection->bytesAvailable();//tempConnection是个QTcpSocket
  QByteArray inBlock = tempConnection->readAll();
  qint64 len=localFile->write(inBlock);
  QMessageBox::information(this,"",inBlock);
    
}

整个过程是TCP客户端传送过来的文件,TCP服务端接收这个文件并且把它存储下来。服务端把文件建立了,也正常打开了,然后往里面写可是没有写进去。但是localFile->write(inBlock)的返回值,也就是写入的字节数恰恰是文件内容的字节数,这不是奇怪吗?它说写进去了,可我打开文件查看的时候却什么也没有!我用QMessageBox显示inBlock中要写入文件的内容,是对的,而且write的返回值len也是对的,可打开文件却是空的?搞了一晚上了,就是查不出错误?

原来错误是:接收文件成功后,我没有关闭文件,即忘记调用localFile.close()了!我擦!!!!!!!!!!

你可能感兴趣的:(tcp,File,存储,qt)