ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • FileWriter & FileReader를 이용한 출력과 파일 복사 하기
    JAVA/IOStream 2020. 10. 6. 18:17

    아래는 파일을 생성하고 그 파일에 우리가 기록하고자하는 내용을 써보는 예제이다.

    아래에서 server.txt파일이 생성 됨을 볼 수 있다.

    아래는 파일의 내용이다. 우리가 작성한 내용과 같다.

     

    아래의 예제는 파일에서 읽어와서 출력하는 간단한 예제이다.

    우선, 파일의 이름을 알고 있어야 하고, 파일이 존재해야 한다.

    아래는 파일의 이름을 가지고 그 파일의 내용을 한 글자씩 가지고 와서 출력한다.

    프로그램 실행결과

     

    이번에는 입력과 출력을 동시에 활용한 예제이다.

    우리가 파일 명과 파일에 쓸 내용을 입력받는다고 하자.

    입력받은 파일 명으로 파일을 만들고 이 파일에 입력받은 내용을 쓰도록 하자.

    그리고 나서 다시 파일 명을 입력받아 파일에 있는 내용을 가지고 와서 출력해보자.

    이 문제는 크게 파일명과 파일에 쓸 내용을 입력받아 파일명으로 파일을 만들고

    이 파일에 내용을 써서 확인을 하는 것이 먼저다.

    그리고 나서 파일 명을 입력 받아 이 파일의 내용을 읽어와서 출력하는 것이 그 다음이다.

    위에서 BufferedReader를 쓴 이유는 readLine함수가 있어서 한 줄 단위로 읽을 수 있기 때문이다.

    BufferedReader를 쓰지 않고 InputStreamReader를 써서 한 글자씩 읽어올 수 있으나,

    이 방식은 선호하지 않는 방식이다.

     

    프로그램 실행결과

    출력할 파일명을 입력할 때, 만들어진 파일명을 입력해야 그 내용을 가지고 올 수 있다.

    아래는 우리가 콘솔 창에서 입력한 파일의 내용이다.

    소스 파일

    FileWrite.java
    0.00MB

     

    이번에는 파일 복사 기능을 만들어보자.

    파일 복사 기능을 만들기 전에 아래의 예제를 보자.

    위의 프로그램 소스를 보면, arr[0]은 명령어가 저장되고

    arr[1]은 복사 원본 파일 이름, arr[2]에는 복사 대상의 파일 이름이 저장된다.

    프로그램 실행결과

    위의 내용을 숙지했으면, 이제 파일 복사를 해보자.

    프로그램 실행결과

    아래에 b.txt파일이 생성됨을 볼 수 있다.

    a.txt 파일과 내용이 같음을 알 수 있다.

    소스 파일

    StringParser.java
    0.00MB

     

    이번에는 위의 내용을 살짝 바꾸어서, 한 줄 단위로 읽는 것이 아닌

    한 글자씩 읽어와서 파일복사 기능을 만들어보도록 한다.

    a.txt 파일의 내용은 위와 같다.

     

    프로그램 실행결과

    아래에 b.txt파일의 내용이 위의 a.txt파일과 내용이 같음을 알 수 있다.

    소스 파일

    ByteReadWrite.java
    0.00MB

     

     

    파일에 문장 기록하고 읽어 오기

    - readLine()메소드는 반드시 Exception 처리해야 한다.

    프로그램 실행결과

    프로그램 분석

    유니코드(Unicode)
       - 유니코드는 16비트 문자셋이며 완성형을 지원. 
       - 문자 코드의 범위는 0 ~ 65535 이다 
       - 전 세계문자 40000자가 기록이 되어 있으며 자바는 유니코드를 사용한다.
       - 문자 한문자를 사용해도 2바이트를 사용한다.
       - 윈도우는 KSC5601 완성형을 사용한다.

     

    abc.txt 파일 내용

    소스 파일

    FileWriterDemo.java
    0.00MB

     

     

    유니코드 테스트

    프로그램 실행결과

    소스 파일

    CodeTest.java
    0.00MB

     

    파일 복사

    - 입.출력 stream객체를 이용해서  파일을 복사.

    도스 상에서 실행시켜서 확인 하자.

     

    소스 파일

    CopyFile.java
    0.00MB

     

    댓글

Designed by Tistory.