9
Q
二進制文件I/O
A
回答
7
rawRead和rawWrite應該完全一樣的fread,fwrite的,只有他們是模板以參數尺寸和長度的照顧。
例如
auto stream = File("filename","r+");
auto outstring = "abcd";
stream.rawWrite(outstring);
stream.rewind();
auto inbytes = new char[4];
stream.rawRead(inbytes);
assert(inbytes[3] == outstring[3]);
rawRead在FREAD方面實現
T[] rawRead(T)(T[] buffer)
{
enforce(buffer.length, "rawRead must take a non-empty buffer");
immutable result =
.fread(buffer.ptr, T.sizeof, buffer.length, p.handle);
errnoEnforce(!error);
return result ? buffer[0 .. result] : null;
}
2
如果你只是想在值(比方說,整型),你可以簡單地做一個大的緩衝區讀取:
int[] ints = cast(int[]) std.file.read("ints.bin", numInts * int.sizeof);
和
std.file.write("ints.bin", ints);
當然,如果喲你有更多的結構化數據,那麼斯科爾威爾士的答案更合適。
相關問題
- 1. 二進制文件的Android文件IO
- 2. 包裝二進制IO
- 3. 寫一個表格(雙打)到二進制文件IO C++
- 4. python中的二進制文件IO,從哪裏開始?
- 5. 複製二進制文件
- 6. Java二進制IO寫入和讀取
- 7. Ruby grep二進制文件?
- 8. 二進制文件(var/object)
- 9. 二進制安裝文件
- 10. 的Python:二進制文件
- 11. 二進制「尾巴」文件
- 12. 追加二進制文件
- 13. 打印二進制文件
- 14. Cassandra和二進制文件
- 15. StringIO與二進制文件?
- 16. 從二進制文件
- 17. WebSphere MQ二進制文件
- 18. 二進制文件下載
- 19. Android:PDF二進制文件
- 20. 修改二進制文件
- 21. 二進制文件解釋
- 22. 閱讀二進制文件
- 23. 寫入二進制文件?
- 24. 從二進制文件
- 25. Python struct.unpack二進制文件
- 26. 壓縮二進制文件
- 27. 文件到二進制流
- 28. 更改二進制文件
- 29. 排序二進制文件
- 30. 從二進制文件
感謝您的好評。 – 2010-10-05 04:56:46
如果您的數據已經在內存中(從api調用接收)而不是在磁盤上,該怎麼辦? Stream api不支持rawRead,並且沒有文件句柄傳遞給.fread ... – 2014-09-23 02:02:10