본문으로 건너뛰기

파일

Rust에서 파일을 다루는 방법을 간단히 알아보겠습니다.

std::fs::File 모듈을 사용해야 됩니다.

use std::fs::File;

fn main() {
let f = File::open("hello.txt");

let f = match f {
Ok(file) => file,
Err(error) => panic!("Problem opening the file: {:?}", error),
};
}
참고로 Ok()Err()에 대해서는 다음 장에서 더 제사히 알아보겠습니다. :::

create() - 파일 만들기

파일은 File::create()을 통해 만들 수 있습니다.

use std::io::Write;
use std::fs::File;

fn main() {
let mut file = File::create("data.txt").expect("create failed");
println!("File created");
}

write_all() - 파일 쓰기

파일에 데이터를 저장하기 위해서는 write_all() 메서드를 사용합니다.

use std::fs::File;
use std::io::prelude::*;

fn main() {
let mut file = File::create("foo.txt");
file.write_all(b"Hello, world!");
}

참고로 문자열 앞에 b를 붙이면 문자열이 바이너리로 변환됩니다.

바이너리는 이진수입니다.

항상 파일에 쓸 때에는 이진수로 적어야 합니다.

read_to_string() - 파일 읽기

파일을 읽는 것은 입력과 비슷합니다.

use std::fs::File;
use std::io::prelude::*;

fn main() {
let mut file = File::open("foo.txt")?;
let mut contents = String::new();
file.read_to_string(&mut contents)?;
}

참고로 ?unwrap()를 줄인 것입니다.

파일 삭제

use std::fs;
fn main() {
fs::remove_file("data.txt").expect("could not remove file");
println!("file is removed");
}