1. 데이터 버퍼링이란?
데이터를 주고 받는 동안 일시적으로 데이터를 버퍼에 저장하는 것
// 데이터 버퍼링 예제
use std::fs::File;
use std::io::{BufRead, BufReader};
/*input.txt 내용
hello world
i am ferris!
haha...
*/
fn main() {
let file = File::open("input.txt").unwrap();
// BufReader 생성
let reader = BufReader::new(file);
// File 을 읽는다.
for line in reader.lines() {
let line = line.unwrap();
println!("{}", line);
}
}
/*실행결과
hello world
i am ferris!
haha... */
2.데이터 직렬화란?
자료의 상태를 저장하기 위해 바이트 스트림으로 변환하는 것
직렬화된 데이터는 파일, 네트워크, 메모리에 저장할 수 있다.
반대로 원래의 형태로 복원하는 것을 역 직렬화 라고 한다.
예제는 Serde 를 사용해서 json 파일로 저장하고 복원한다.
// 데이터 직렬화 예제
/* serde, serde_json 를 사용하려면 의존성 추가 해야 한다.
[dependencies]
serde = {version = "1.0", features = ["derive"]}
serde_json = "1.0"
*/
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
struct Point {
x: i32,
y: i32,
}
fn main() {
let pt = Point { x: 10, y: 20 };
//pt 를 json 형식으로 변환한다.
let json = serde_json::to_string(&pt).unwrap();
println!("json: {}", json);
// json을 사용해서 Point를 생성한다.
let pt: Point = serde_json::from_str(&json).unwrap();
println!("point: [{}, {}]", pt.x, pt.y);
}
/*실행결과
json: {"x":10,"y":20}
point: [10, 20] */
댓글 없음:
댓글 쓰기