2014년 2월 11일 화요일

20140212 입력/출력

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. 임의 접근 파일
  이 파일은 비순차적인 접근을 가능하게 한다.
압축 파일의 경우 순서에 관계없이 열어볼 수 있다.



점점 정신ㅇ ㅣ 몽롱해진다............................................ㅠㅠ

댓글 없음:

댓글 쓰기