| # `create` |
| |
| The `create` function opens a file in write-only mode. If the file |
| already existed, the old content is destroyed. Otherwise, a new file is |
| created. |
| |
| ```rust,ignore |
| static LOREM_IPSUM: &str = |
| "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod |
| tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, |
| quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo |
| consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse |
| cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non |
| proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |
| "; |
| |
| use std::fs::File; |
| use std::io::prelude::*; |
| use std::path::Path; |
| |
| fn main() { |
| let path = Path::new("lorem_ipsum.txt"); |
| let display = path.display(); |
| |
| // Open a file in write-only mode, returns `io::Result<File>` |
| let mut file = match File::create(&path) { |
| Err(why) => panic!("couldn't create {}: {}", display, why), |
| Ok(file) => file, |
| }; |
| |
| // Write the `LOREM_IPSUM` string to `file`, returns `io::Result<()>` |
| match file.write_all(LOREM_IPSUM.as_bytes()) { |
| Err(why) => panic!("couldn't write to {}: {}", display, why), |
| Ok(_) => println!("successfully wrote to {}", display), |
| } |
| } |
| ``` |
| |
| Here's the expected successful output: |
| |
| ```shell |
| $ rustc create.rs && ./create |
| successfully wrote to lorem_ipsum.txt |
| |
| $ cat lorem_ipsum.txt |
| Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod |
| tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, |
| quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo |
| consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse |
| cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non |
| proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |
| ``` |
| |
| (As in the previous example, you are encouraged to test this example under |
| failure conditions.) |
| |
| The [`OpenOptions`] struct can be used to configure how a file is opened. |
| |
| [`OpenOptions`]: https://doc.rust-lang.org/std/fs/struct.OpenOptions.html |