간단하게만 알아보자면 3단계로 구성된다.
final fileName = File('파일.txt');
fileName.writeAsStringSync('Hello World');
fileName.readAsStringSync();
import 'dart:io';
void main() {
void copy (String source, String target) {
final sourceFile = File(source);
final targetFile = File(target);
sourceFile.writeAsStringSync("졸음껌과 박하사탕");
final text = sourceFile.readAsStringSync();
targetFile.writeAsStringSync(text);
}
copy("source.txt", "target.txt");
}
: 대부분 라이브러리를 지원하니 적극 활용하자 -> https://pub.dev/packages
데이터를 콤마로 나눈 형식으로, 엑셀 데이터와 비슷하다.
ex) String str = “홍길동”, ”한석봉”, “신사임당”;
key-value 쌍으로 읽고 쓰기를 가능하게 하는 클래스이다. 설정 정보를 관리하고 읽어오기 위해 사용된다.
# 예시 프로퍼티 파일
database.url=jdbc:mysql://localhost:3306/mydb
database.username=myuser
database.password=mypassword
<> 태그를 활용한 기술 방식으로 포함관계를 기술할 수 있다. HTML을 다뤄봤다면 익숙할 것이다. 하지만 DOM Parser, SAX Parser 등을 통해 파서를 따로 제작해야 해서 잘 쓰이지 않는다.
네트워크 통신에서 가장 많이 사용되고, XML에 비해 적은 용량을 차지한다. []로 리스트, {}로 객체를 구현한다. key-value 쌍으로 데이터가 표현된다. 데이터를 넣을때 꼭 큰 따옴표를 사용하자!
final json = {
"name" = "Bubble Gum",
"age" = 32,
};
데이터를 일련의 바이트 또는 다른 형식으로 변환하는 과정으로, Dart에서는 클래스 내용을 Json 형태로 변환하는 것으로 본다.
toJson()
으로 객체를 Json 형태로 표현한다
Map<String, dynamic> toJson() => {
"name" : name,
"age" : age,
}
jsonEncode()
: Map을 json형식의 String으로 변환해준다. 단순히 toJson()을 쓰면 큰 따옴표가 들어가지 않은 형식의 String으로 리턴되어 나중에 데이터를 다시 json화할 수 없다.
직렬화된 데이터를 다시 원래의 데이터 구조로 변환하는 과정으로, Json 형태를 클래스 내용으로 변환하는 것이다. fromJson()
생성자로 json을 객체로 만든다.
User.fromJson(Map<String, dynamic> json)
: name = json["name"],
age = json["age"];
jsonDecode()
: String 형태의 Json을 Map으로 변환할 때 사용된다.
느낀점
여기서부터는 객체지향과 살짝 멀어진 개념을 배우는 것 같다. 자바스크립트에서 자주 사용되는데 앱개발에서도 쓰이는 것 같아 신기했다. json은 서버와 클라이언트간의 소통을 위해 쓰인다고 하는데, 나중에 백엔드와 상호작용할 때 잘 활용할 수 있도록 많이 복습해둬야겠다.