2024.02.06

김무영·2024년 2월 6일

파일 한글 처리 ( 8bit stream과 16bit stream을 결합)

  1. File생성
    File file = new File("경로");
  2. FileInputStream 생성
    FileInputStream fis = new FileInputStream( file );
  3. InputStreamReader 생성
    InputStreamReader isr = new InputStreamReader(fis);
  4. BufferedReader 생성
    BufferedReader br = new BufferedReader(isr);
  • 줄여서 만들기
    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream( new File("경로"))));
  1. 스트림에 연결될 파일의 내용이 있다면 읽어들인다.
    String str = "";
    while((str=br.readLine())!= null){
     str //읽어들인 한줄을 사용 (\n은 포함되지 않는다.)
    }
  2. 스트림의연결을 끊는다.
    br.close();
    }

16bit stream

  1. 파일 생성
    File file = new File("경로");
  2. 파일과 연결하기 위한 stream생성
    FileReader fr = new FileReader( file );
  3. 줄 단위로 읽기 위한 stream생성
    BufferedReader br = new BufferedReader ( fr );
  • 줄여서 작성
    BufferedReader br = new BufferedReader ( new FileReader( file ) );
  1. 스트림에 연결된 파일의 내용을 끝까지 읽어들인다.
    String str = "";
    while((str=br.readLine()) != null){
    str//줄 단위로 읽어들인 한 줄을 사용.
    }
  2. 스트림의 연결을 끊는다.
    br.close();

try ~ with ~ resources

  • 개발자가 연결객체를 사용하면 연결을 끊지 않았을 때 메모리 누수(memory leak)이 발생하게 된다.
  • 누수를 막기 위해서 개발자는 반드시 끊는 코드 (close())를 사용해야한다.
  • 개발자가 close() 하지 않더라도 JVM이 알아서 close() 해준다.
    BufferedReader br = null;
    try{
    br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
    }finally{
    if(br!=null){br.close}//연결을 반드시 끊기위해서.
    }
    
    //호출
    try{
    	method명();
    }catch(예외처리 클래스){
    예외 발생시 처리할 코드
    }
    try(BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)))){
    //스트림을 사용하는 코드
    }catch( 예외처리 클래스 ){
    	예외처리 발생시 처리할 코드
    }

출력스트림

  • Console 출력

  • 파일출력

    • JVM안에서 발생한 데이터를 File로 출력.

    • FileOutputStream, FileWriter가 제공 => 스트림을 생성하면 목적지에 파일이 존재하면 덮어쓰고, 파일이 존재하지 않으면 파일을 생성한다.

    • 디렉토리는 생성할 수 없다. (File 클래스에서 디렉토리 생성)

    • 방법

      1. 파일 생성
        File file = new File("경로/파일명");
      2. 스트림을 생성
        FileOutPutStream fos = new FileOutPutStream( file );
      3. 스트림에 파일로 저장할 내용 쓴다.
        int i = 65;
        fos.write( i );
      4. 스트림에 쓰여진 내용을 목적지로 분출한다.
        fos.flush();
        //기본형 데이터형은 flush()를 하지 않더라도 목적지로 분출된다.
      5. 연결 끊기
        fos.close();
        // flush()를 하지 않아도 연결만 끊어주면 자동으로 스르팀 안에 내용이 flush되고 연결이 끊어진다.
  • 문자열 출력 => 16bit stream

    • 방법
      1. 파일 생성
        File file = new File("경로/파일명");
      2. 스트림을 생성
        FileOutPutStream fos = new FileOutPutStream( file );
      3. 스트림에 파일로 저장할 내용 쓴다.
        String str = "하이";
        fos.write( str );
      4. 스트림에 쓰여진 내용을 목적지로 분출한다.
        fos.flush();
        //반드시 flush를 해서 스트림의 내용을 목적지로 분출해야한다.
      5. 연결 끊기
        fos.close();
        // flush()를 하지 않아도 연결만 끊어주면 자동으로 스르팀 안에 내용이 flush되고 연결이 끊어진다.
  • BufferedWriter를 사용한 출력

    • 방법
    1. 파일 생성
      File file = new File("경로/파일명");
    2. 스트림을 생성
      BufferedWriter bw = new BufferedWriter( new FileWriter( file ) );
    3. 스트림에 파일로 저장할 내용 쓴다.
      bw.write( 문자열 );
    4. 스트림에 쓰여진 내용을 목적지로 분출한다.
      bw.flush();
      //반드시 flush를 해서 스트림의 내용을 목적지로 분출해야한다.
    5. 연결 끊기
      bw.close();

Runnable Jar

  • 실행 가능한 jar만들기 ( 개발된 프로그램을 편하게 배포하고 , 실행하기 위해 만든다. )

  • java는 exe파일을 만들 수 없다. => bat파일과 JRE를 함께 배포하여 실행환경을 구성한다.

  • 실행 )

0개의 댓글