Rust 표준 라이브러리로 파일 생성하기

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 파일을 쓰기 전용 모드로 열고, 파일이 이미 존재하면 기존 내용을 삭제하고 새 파일을 생성하는 create 함수를 사용합니다. 이 함수는 Rust 의 표준 라이브러리를 사용하여 파일 작업을 처리합니다. 제공된 예제는 create 함수를 사용하여 정적 LOREM_IPSUM 문자열의 내용을 "lorem_ipsum.txt"라는 파일에 쓰는 방법을 보여줍니다. 출력은 성공적인 쓰기 작업 확인을 보여주며, cat 명령어를 사용하여 파일 내용을 표시합니다.

참고: 실습에서 파일 이름을 지정하지 않으면 원하는 파일 이름을 사용할 수 있습니다. 예를 들어 main.rs를 사용하고 rustc main.rs && ./main으로 컴파일 및 실행할 수 있습니다.

create

create 함수는 파일을 쓰기 전용 모드로 엽니다. 파일이 이미 존재하면 기존 내용이 삭제되고, 그렇지 않으면 새 파일이 생성됩니다.

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();

    // 쓰기 전용 모드로 파일을 엽니다. `io::Result<File>` 를 반환합니다.
    let mut file = match File::create(&path) {
        Err(why) => panic!("{} 생성 실패: {}", display, why),
        Ok(file) => file,
    };

    // `LOREM_IPSUM` 문자열을 `file` 에 씁니다. `io::Result<()>` 를 반환합니다.
    match file.write_all(LOREM_IPSUM.as_bytes()) {
        Err(why) => panic!("{}에 쓰기 실패: {}", display, why),
        Ok(_) => println!("{}에 성공적으로 썼습니다", display),
    }
}

예상 성공 출력:

$ rustc create.rs && ./create
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.

(이전 예제와 마찬가지로, 실패 조건에서도 이 예제를 테스트하는 것이 좋습니다.)

파일을 여는 방법을 구성하려면 OpenOptions 구조체를 사용할 수 있습니다.

요약

축하합니다! Create 실습을 완료했습니다. LabEx 에서 더 많은 실습을 통해 기술을 향상시킬 수 있습니다.