在Rust中以读写模式打开文件

Tim*_*mmm 4 file rust

拉斯特,我怎么打开一个文件进行读取写入?File::open()是只读的,File::create()声明是只写的(并且还创建不是我想要的文件).

Tim*_*mmm 8

您使用OpenOptions结构打开文件,而不是像您期望File::open()OpenOptions那样使用和传递它.

use std::fs::OpenOptions;

let mut file = OpenOptions::new()
    .read(true)
    .write(true)
    .open("foo.txt");
Run Code Online (Sandbox Code Playgroud)

  • @Boiethios:我仍然觉得使用很奇怪.我希望构建器构建一个`OpenOptions`对象,然后传递给`File :: open_with`函数.那个'OpenOptions`有'open`方法感觉......很奇怪. (4认同)
  • 是的,这是标准库中[builder pattern](https://github.com/rust-unofficial/patterns/blob/master/patterns/builder.md)的一个用途. (2认同)