Не получается ни записать ни прочесть из потока. Видимо я чего-то не понимаю.
А какой размер файла который вы считываете?
Полагаю размер файла не кратен размеру считываемых данных. У вас случаем файл не меньше чем 32бита? В этом случае вы пытаетесь прочесть за пределами конца файла и получаете не нулевой статус.
Вы бы в цикл qDebug засунули и выводили что считывается и какой статус.
Из доки: QFile::QFile ( const QString & name ) - Constructs a new file object to represent the file with the given name.
То-бишь, пустой файл создаётся, потом - открывется и читается...
(
Нокиа признаёт хилую защиту atEnd() :
Reimplemented from QIODevice::atEnd().
Returns true if the end of the file has been reached; otherwise returns false.
For regular empty files on Unix (e.g. those in /proc), this function returns true, since the file system reports that the size of such a file is 0. Therefore, you should not depend on atEnd() when reading data from such a file, but rather call read() until no more data can be read.
)
Вот-тут: QFile file("text");
Из доки: QFile::QFile ( const QString & name ) - Constructs a new file object to represent the file with the given name.
То-бишь, пустой файл создаётся, потом - открывется и читается...
Полагаю размер файла не кратен размеру считываемых данных. У вас случаем файл не меньше чем 32бита? В этом случае вы пытаетесь прочесть за пределами конца файла и получаете не нулевой статус.
Хм, не думал об этом, 1234 вроде 11 бит т.к. 10011010010, попробую. Хотя думал старшие биты просто будут равны 0, т.е. 00000000000000000000010011010010.
В текстовом виде? Разочарую, QDataStream работает с бинарным представлением, о чём Voral и говорил. Т.е. вместо ожидаемых "1234" получится 825373492 (если не сменить byte order).