[Rust] 23. 파일 입출력
프로그래밍 언어/Rust2023. 3. 10. 21:17
파일 입출력
Rust 에서는 파일 입출력을 위해 File 구조체를 사용하며, 구조체의 모든 메소드는 io:Result 열거형으로 반환된다.
파일 쓰기
std::io::Write 의 write_all() 함수를 사용하여 파일을 쓸수 있다. 아래 예제를 보자
use std::fs::File;
use std::io::Write;
fn main()
{
let mut _file = File::create("test.txt").expect("파일 생성 실패!");
_file.write_all("Hello Rust World!".as_bytes()).expect("쓰기 실패");
_file.write_all("\n반갑습니다 러스트!!".as_bytes()).expect("쓰기 실패");
println!("파일 쓰기 완료!");
}
아래와 같이 파일이 정상적으로 생성되고 데이터가 작성되어 저장된 것을 볼 수 있다.
파일 읽기
위에서 만들어진 텍스트 파일을 읽어보도록 하자
use std::fs::File;
use std::io::Read;
fn main()
{
let mut _file = File::open("a.txt").expect("파일 열기 실패!");
let mut data_buf = String::new();
_file.read_to_string(&mut data_buf).expect("파일 읽기 실패!");
println!("{}", data_buf);
}
기존 파일에 데이터 추가
OpenOptions 의 append 모드로 파일을 열게 되면 기존에 생성된 파일에 데이터를 추가할 수 있다.
use std::fs::OpenOptions;
use std::io::Write;
fn main()
{
let mut _file = OpenOptions::new().append(true).open("test.txt").expect("파일 열기 실패!");
_file.write_all("\n\n파일에 데이터를 추가합니다.".as_bytes()).expect("파일 쓰기 실패");
_file.write_all("\nHave a good day~".as_bytes()).expect("파일 쓰기 실패");
println!("추가 쓰기 완료");
}
파일 삭제
remove_file 메서드를 사용하여 파일을 삭제 할 수 있다.
use std::fs;
fn main()
{
fs::remove_file("test.txt").expect("파일 삭제 실패");
println!("파일 삭제 완료");
}
'프로그래밍 언어 > Rust' 카테고리의 다른 글
[Rust] 25. 스레드 동기화 (0) | 2023.03.24 |
---|---|
[Rust] 24. 스레드 (0) | 2023.03.14 |
[Rust] 22. 커멘드라인 아규먼트 (0) | 2023.03.09 |
[Rust] 21. 테스트 코드 (0) | 2023.03.06 |
[Rust] 20. 트레잇 & 트레잇 바운드 (0) | 2023.03.05 |