java.io와 java.nio 는 다르다!
: 입력과 출력의 기준은 RAM이다!
비 전공자들이 가장 많이 하는 실수가 입력 = 키보드 / 출력 = 모니터, 프린터 라고 알고있는 것이라고 한다고 하더라.
하지만 RAM 기준으로 RAM에서 어떤 형태로든 자료가 나가면 출력, 그리고 RAM이 어떤 형태로든 자료를 받으면 입력이라고
생각하면 쉬울 것 같다.
// 입출력을 할 때는 항상 열었으면 닫자!
1. 스트림(Stream)
물이 흐른다. 물 흐르듯 데이터가 움직이는 통로이다.
입,출력 스트림은 바이트 스트림과 문자 스트림으로 나뉘어 진다.
바이트 스트림은 바이트 단위(8bit)를 기본으로 사용한다.
2. 바이트 스트림
8bit 단위로 입출력 수행
FileInputStream // 파일로 부터 바이트를 읽는 객체 생성
FileOutputStream // 파일에 바이트를 쓰는 객체 생성
3. 버퍼 스트림
프로그램과 디스크가 직접 연결되면 느리기 때문에 중간에 버퍼(Buffer)를 이용해 속도를 향상시킨다.
보통 버퍼는 자동으로 비워지지만
flush()라는 메소드를 통해 직접 비울 수 있다.
4. 데이터 스트림
기초 자료형 단위로 데이터를 읽고 쓸 수 있다.
5. 객체 스트림
객체를 직렬화(serialization)를 통해 저장소에 저장한다.
: 객체를 순차적인 데이터로 변환하는 것을 직렬화 라고 한다.
-> 객체의 결과 값을 직렬화 하여 저장시킨다.
반대로 구현시(읽어올 때) 역직렬화(deserialization)라고 한다.
6. 문자 스트림
입 출력 단위가 문자이다!
위의 문장을 read() 메소드를 통해 읽어 println 하면
입
출
력
단
위
이런 식으로 출력 된다.
7. 임의 접근 파일
이 파일은 비순차적인 접근을 가능하게 한다.
압축 파일의 경우 순서에 관계없이 열어볼 수 있다.
점점 정신ㅇ ㅣ 몽롱해진다............................................ㅠㅠ
댓글 없음:
댓글 쓰기