关于文件输入流操作
关于输入流的操作理解:比如有一个100字节的文件,每次读取8字节
第一次读取应该从0开始
文件读取.读取数据(临时数组,起始位置,每次读取长度,空对象)
起始位置=起始位置+每次读取长度
第二次应该从8开始读取吧???
为什么第二次读取 程序会无响应闪退
难道不是这样理解的吗???
还有下图"注意有可能小于所希望读入的字节数"
难道读不完整
关于读取分批文件,这个问题困扰了一个礼拜了,各种流都试过了,实在搞不好了,特来提问 本帖最后由 0晨鹤0 于 2021-12-21 22:32 编辑
你理解错了。起始位置指的不是从哪开始读取文件,而是把读取的内容放到结果数组的哪里。
文件流的读取是单向的,每一次读取会自动从上一次读取结束的地方开始。不需要你手动计算,也无法手动干预。
举个例子:文件内容:123456789
结果数组A大小为5,第一次读取,起始位置传2,读取长度传3。结果就是A, A 内容保持不变。A=1, A=2, A=3。
下一次读取,起始位置传0,读取长度传2,结果就是 A=4, A=5。A~A 依然是 1 2 3.
顺便吐槽一下,这个名字翻译的太有误导性了。严重怀疑当时封装人员自己都搞错了。翻译成“欲保存位置”,或者“保存偏移”,要好得多。
0晨鹤0 发表于 2021-12-21 22:27
你理解错了。起始位置指的不是从哪开始读取文件,而是把读取的内容放到结果数组的哪里。
文件流的读取是单 ...
原来如此,那他这个注释有点误导性啊,或者说,尤其是一些关键字,比如,“欲”,“所” 李先森 发表于 2021-12-22 07:46
原来如此,那他这个注释有点误导性啊,或者说,尤其是一些关键字,比如,“欲”,“所” ...
直接用读入数据2方法就可以了。
页:
[1]