我最初使用下面代码对文件进行一个解析与发送;发现文件接收的大小与发送的大小不一致(但是实际内容都收到了,就是换行符都没了)那缺的字节数应该就是(“\n”)。
QTextStream InFile(&file);
while(!InFile.atEnd())
{
QString line = InFile.readLine();
Tcp->write(line.toUtf8());
}
刚开始感觉是readLine() 读取时少读了("\n");就使用readAll()试了一下。代码如下:
QTextStream InFile(&file);
QString line = InFile.readAll();
Tcp->write(line.toUtf8());
结果接收到的数据是正确的,但是我又想,readAll()会不会有读取上限,去了解了一下最大容量是16M。那我超过16M,或者想用readLine() 的应该怎么办?
后面又去了解了一下readLine(),readLine()方法会读取指定行的数据,并在行末添加一个换行符("\n"),我就想去掉这个添加的("\n");代码如下:
QTextStream InFile(&file);
while(!InFile.atEnd())
{
QString line = InFile.readLine();
line = line.trimmed(); // readLine()方法会读取指定行的数据,并在行末添加一个换行符("\n") 需去除首尾空白字符和换行符
Tcp->write(line.toUtf8());
}
文件接收的大小与发送的大小一致,内容正确!