我将打开的文件存储在地图中:HashMap<u32,File>
。有时会调用函数 read_to_file
和 write_to_file
。他们从地图中获取文件并进行相应的程序。为了避免在同一个文件中写入和读取时发生冲突,我需要关闭该文件。我该怎么做?
在 Rust 中关闭存储在 Map 中的文件
•
问答
henshui22 回答:在 Rust 中关闭存储在 Map 中的文件
根据 Rust documentation std::fs::File
是:
对文件系统上打开文件的引用。
如果您将 File
存储在地图中,那么根据定义,它们是开放的。当变量被删除(超出范围)时,它们会自动关闭。
相反,您可以考虑在地图中存储 Path
,并按需打开文件。如果您出于某种原因需要存储打开的文件,那么您可以将它们包装在 Arc<Mutex>
(如果您的应用程序是单线程的,则为一个 `Rc),以防止同时访问。