gpt4 book ai didi

file - Rust:如何逐 block 读取文件

转载 作者:行者123 更新时间:2023-12-03 11:39:52 37 4
gpt4 key购买 nike

我对使用rust 完全陌生。我想按块/块(每个块应包含16个字节)读取一个文件块,并将其写入此文件(对于此测试方案)到另一个文件f2中。所以我首先用下面的代码尝试了它:

let mut buf = [0;16];
let mut count = 0;

for byte in f1.bytes() {

if count == 16 {
do_smth(&mut f2, &mut buf);
count = 0;
let data = byte?;
buf[count] = data;

} else {
let data = byte?;
buf[count] = data;
count +=1;
}

}

文件f1中的测试字节为:
0123456789abcdef-hello world, hello world!
文件f2中的结果为
0123456789abcdefhello world, hel
有没有一种高效的方法可以在每次迭代时增加文件光标。
我阅读了关于seek函数的信息,并对其进行了一些尝试,但并未找到解决方案。也许可以通过每次交互增加文件光标来解决?

最佳答案

这是有效的解决方案。

let mut buffer = [0; 16];
let mut count = 0;
while let Ok(n) = f1.read(&mut buffer[..]) {
if n != 16 {
let rest = &buffer[0..n];
do_smth(&mut f2, &rest);
break;
} else {
do_smth(&mut f2, &mut buffer);
count += n;
}
}

关于file - Rust:如何逐 block 读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61352882/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com