[JAVA] I / O

zirryo·2022년 7월 21일
0

⚡️ STUDY

목록 보기
11/15
post-thumbnail
week 4 / 22.07.20

💿 파일 입출력



I / O 스트림

스트림은 단방향으로만 데이터를 전송할 수 있기 때문에, 입력과 출력을 처리하기 위해 각각의 스트림 필요.


FileInputStream 데이터 읽기

  • 터미널 창에 다음과 같은 명령어를 입력하면, 현재 디렉토리test라는 문자열이 입력된 inputTest.txt 파일이 생성됨.
    echo test >> inputTest.txt



  • 해당 라이브러리를 import 해서 사용해야 하며 다음과 방식으로 작성하여 파일을 불러옴.
    // 다음과 같이 import문 작성
    import java.io.FileInputStream;
    // 객체 생성
    FileInputStream 참조변수명 = new FileInputStream("파일명.확장자");



  • FileInputStream 의 주요 메서드

    반환타입메서드기능
    abstract intread()input stream data 1바이트를 읽음
    intread(byte[] b)1바이트를 읽고 배열에 저장, 읽은 수만큼 리턴
    voidclose()현재 input stream 종료
    intavailable()읽을 수 있는 바이트 수 리턴
    longskip(long n)읽을 수 있는 바이트에서 n 바이트 건너뛰고,
    실제로 건너뛴 바이트 수 리턴



  • BufferedInputStream : 성능 향상을 위해 사용하는 보조 스트림

      // 다음과 같이 import문 작성
    import java.io.FileInputStream;
    import java.io.BufferedInputStream;
      // 객체를 생성하고, 이 객체를 인자로 전달
    FileInputStream 참조변수명1 = new FileInputStream("파일명.확장자");
    BufferedInputStream 참조변수명2 = new BufferedInputStream(참조변수명1);
    • 버퍼는 바이트의 배열. 여러 바이트를 저장하여 많은 양의 데이터를 입출력할 수 있도록 하는 임시 저장 공간.

    • 🔗 메서드 더 알아보기




FileOuputStream 데이터 쓰기

  • 라이브러리를 import 해서 사용해야 하며 다음과 방식으로 파일 작성.
      // 다음과 같이 import문 작성
    import java.io.FileOuputStream;
      // 객체 생성
    FileOuputStream 참조변수명 = new FileOuputStream("파일명.확장자");



  • FileOuputStream 의 주요 메서드

    반환타입메서드기능
    abstract
    void
    write(int b)output stream이 b를 바이트로 변환하여 씀
    voidwrite(byte[] b)output stream이 바이트 배열 b를 씀
    voidflush()가득차지 않은 버퍼의 내용도 바로 내보냄
    intavailable()읽을 수 있는 바이트 수 리턴

문자 기반 스트림

위의 File 입출력 스트림은 바이트 기반 스트림이다.
2 byte의 char 타입을 위한 문자 기반 스트림도 존재하며, 여러 종류의 인코딩(encoding)과 유니코드(UTF-16)간의 변환을 자동으로 처리한다.



유니코드

  • 각 나라별 언어를 모두 표현하기 위해 나온 코드 체계이다.
  • 언어와 상관없이 모든 문자를 16비트로 표현한다.



FileReader 인코딩 > 유니코드

  • 아래의 코드와 같이 작성하여 파일을 불러올 수 있으며, FileInputStream 과는 다르게 한글도 읽어올 수 있음.
      // 다음과 같이 import문 작성
    import java.io.FileReader;
      // 객체 생성
    FileReader 참조변수명 = new FileReader("파일명.확장자");



  • BufferedReader : 성능 향상을 위해 사용하는 보조

    // 다음과 같이 import문 작성
    import java.io.FileReader;
    import java.io.BufferedReader;
    // 객체를 생성하고, 이 객체를 인자로 전달
    FileReader 참조변수명1 = new FileReader("파일명.확장자");
    BufferedReader 참조변수명2 = new BufferedReader(참조변수명1);

    🔗 FileReader 메서드 알아보기




FileWriter 유니코드 > 인코딩

  • Read 와 비슷한 방식으로 작성하여 사용 가능.

    // 다음과 같이 import문 작성
    import java.io.FileWriter;
    // 객체 생성
    FileWriter 참조변수명 = new FileWriter("파일명.확장자");

    🔗 FileWriter 메서드 알아보기




reference
🔗 I / O

0개의 댓글