官术网_书友最值得收藏!

Writing a file

Writing to a file is a two-step process: opening the file (possibly creating it if it didn't exist before) and then the writing of the file. This is very similar to how writing to a file in the C family of languages is carried out.

You can create a file for writing in a single call to std::fs::File::create. The open method in the same namespace opens a file for reading. If you need more fine-tuned permissions, std::fs::OpenOptions::new creates an object through which you can tweak the parameters and then open the file.

As with any file operation, anything could fail, so the result should always be checked:

let file: Result<File,Error> = options.open(path); 
 

As mentioned before, Rust uses a generic type, Result<T,U> , quite frequently as an error-trapping mechanism. It encapsulates two values: the left-hand side value is used when the operation succeeds, and the right-hand side value is used when it does not succeed.

Once we have completed the file creation, we can move on to writing to the file.

First, we check the results of the Result comparison. If an error hasn't been thrown there was no error, and we can then create a BufWriter:

let mut writer = BufWriter::new(&file); 
writer.write_all(b"hello text file\n"); 

We don't need to flush the buffer, as write_all will do that for us (it calls flush() once completed). If you don't use write_all, then you need to call flush() to ensure the buffer is cleared.

主站蜘蛛池模板: 福海县| 托克逊县| 临朐县| 华池县| 宜昌市| 方城县| 武宁县| 浮山县| 称多县| 滕州市| 大同市| 龙岩市| 宝坻区| 西充县| 莲花县| 贺州市| 迁安市| 宜都市| 石嘴山市| 崇义县| 开江县| 安平县| 武冈市| 涿鹿县| 南城县| 文昌市| 金寨县| 浦县| 自治县| 吐鲁番市| 呼和浩特市| 无棣县| 濉溪县| 江永县| 西华县| 邯郸市| 马公市| 太保市| 台南县| 平昌县| 保康县|