Java 강의 [ IO 1/5 ]

·2023년 7월 23일

java 공부

목록 보기
11/13
post-thumbnail

IO 란?

  • Input & Output
  • 입력은 키보드, 네트워크, 파일등으로부터 받을 수 있다.
  • 출력은 화면, 네트워크, 파일 등에 할 수 있다.

Java IO도 객체다.

  • Java IO가 제공하는 객체는 어떤 대상으로부터 읽어들여, 어떤 대상에게 쓰는 일을 한다.

Java IO는 조립되어 사용되도록 만들어졌다.

  • 마름모 꼴로 되어 있는 것은 Decorator은 Component를 가질 수 있다.
    즉, Decorator 생성자에 Component가 들어가야한다.

  • Component를 수행하는 것이 InputStream, OutputStream, Reader, Writer

  • 주인공과 장식(Decorator)을 구분할 수 있어야 한다.

    • Decorator은 InputStream, OutputStream, Reader, Writer를 생성자에서 받아들인다.

    • 주인공은 어떤 대상에게서 읽어들일지, 쓸지 결정한다.

    • 주인공은 1byte or byte[]단위로 읽고 쓰는 메소드를 가진다.

    • 주인공은 1char or char[]단위로 읽고 쓰는 메소드를 가진다.

    • Decorator은 다양한 방식으로 읽고 쓰는 메소드를 가진다.
      +InputStream, OutputStream, Reader, Writer는 추상클래스

      +추상클래스란?
      -> 하나 이상의 순수 가상 함수를 포함하고 있는 클래스
      -> 추상 클래스는 동작이 정의되지 않은 순수 가상 함수를 포함하고 있기 때문에 인스턴스를 생성할 수 없다. 따라서 추상 클래스는 먼저 상속을 통해 파생 클래스를 만들고, 만든 파생 클래스에서 순수 가상 함수를 모두 오버라이딩 하고 나서야 파생 클래스의 인스턴스를 생성할 수 있다.
      -> 객체 지향 프로그래밍에서 중요한 특징인 다형성을 가진 함수의 집합을 정의해주는 역할을 맡고 있다.

Java IO의 특수한 객체

System.in : 표준 입력(InputStream) 키보드로부터 입력
System.out : 표준 출력 (PrintStream) 화면에 출력
System.err : 표준 에러 출력 (PrintStream)

Java IO의 클래스 상속도

👀 Java IO의 클래스 상속도

출처 [https://blog.itthis.kr/69]

  • Java IO 클래스 이름이 중요하다.

Java IO 클래스는 생성자가 중요하다.

  • Java IO 클래스는 InputStream, OutputStream, Reader, Writer 중 하나를 상속 받아야 한다.
  • 구분
    • 장식클래스 : InputStream, OutputStream, Reader, Writer를 생성자에서 받아들인다.
    • 위의 4가지는 추상클래스이기에 생성자에서 위 추상 클래스의 인스턴스를 받아들일 수 없다. 즉, 생성자에서 받아들인다는 말은 추상 클래스의 자손을 받아들인다는 말
    • 주인공 클래스 : InputStream, OutputStream, Reader, Writer를 생성자에서 받아들이지 X는다.
      • 주인공 클래스는 어디서 읽을 것이며 어디다 쓸지를 결정

실습

< 키보드로부터 한줄씩 입력 받아 화면에 한줄씩 출력하시오.>


과정
System.in이 키보드로부터 받아 들이고 InputStreamReader에 전달
InputStreamReader는 BufferedReader에 전달
BufferedReader의 readLine메서드로 한 줄씩 입력 받는다
println으로 한 줄씩 출력한다.

profile
기회를 잡기 위해 준비하자 !

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

좋은 정보 감사합니다

답글 달기