비투즈의 노트르담

문자스트림

 

앞에서 말하는 것과 마찬가지로 파일입출력부분은 개념을 알고들어가야 되는 것같습니다.

문자스트림에 앞서서 바이트스트림과 문자스트림이 차이점을 알아야됩니다.

"난 정말 자바 XX" 에 설명이 잘나와있습니다. 736페이지에 나와있습니다.

이 설명을 말하자면,

자바는 유니코드 기반으로 되어있는데,  Windows자체에서 실행되는 응용프로그램들은 Windows만의 인코딩 방식이 있을 것입니다.

그러므로, Windows의 문자표현 방식으로 문자를 저장할려고하면, 문자 A를 1바이트 정수 65, 문자 B를 정수 66으로 표현합니다.

이런식으로 인코딩 방식을 알아야합니다.

 

이런 불편한 요소를 해결하기위해 자동으로 인코딩을 해주는 문자스트림을 만들었습니다.

 

문자단위의 파일 입력스트림과 출력스트림은

FileReader, FileWriter의 대표적인 클래스입니다.

 

 

 

 

 

필터스트림 을 추가할 수있는데요. 문자스트림은 바이트 스트림의 입출력 버퍼 필터스트림을 사용하지 않고,

문자스트림의 버퍼 필터 스트림을 사용합니다.

BufferedReader, BufferedWriter

api문서에서 BufferedReader in = new BufferedReader(new FileReader("foo.in")); 이렇게 쓰라고 말합니다.

또한 Buffering없이 사용하는 것은 비효율적이라고 말합니다.

BufferedReader의 대표적인 클래스입니다. API문서 캡쳐한건데, 밑에 보시면 쉽게 이해가 가실거라 따로 설명안하겠습니다.

 

 

 

 

마지막 문자스트림중에 하나 PrintWriter

"지문이 텍스트 출력 스트림에 객체의 표현 형식이. 이 클래스는 PrintStream에있는 인자 메소드를 모두 구현합니다. 프로그램은 인코딩되지 않은 바이트 스트림을 사용해야하는 원시 바이트 작성하는 방법을 포함하지 않습니다."

일케 API문서에 나와있는데요.

PrintStream은

System.out에는  public static void PrintStream out; 일케 되어있고, 다양한 형태의 데이터를 문자열의 형태로 출력가능하고, 조합하여 출력합니다. printf, println


"자동 플러싱이 활성화 된 경우 PrintStream 클래스와는 달리, 그것은 오히려 줄 바꿈 문자 출력 생길 때마다보다 println, printf, 또는 형식 방법 중 하나가 호출 될 경우에만 수행됩니다. 이러한 방법은 오히려 줄 바꿈 문자보다 분리기의 플랫폼 고유의 개념을 사용합니다."

 

이 말이 무엇이냐면, C언어 하신분은 알겠지만, printf("안녕하세요 ~ \n"); 개행문자를 집어넣었지만. 개행처리가 되지않고,

println을 사용할때 개행처리가 된다는 애기고요.

 

밑에는 사용하는 방법입니다.

ex) PrintWriter out = new PrintWriter(new FileWriter("1.txt");

out.printf(" hahaha");

out.println("olleh");

out.close();

 

이런식으로 사용하면됩니다.

이 클래스의 메소드 생성자 중 일부는 수 있지만 I / O 예외를 throw하지 않습니다.클라이언트는 오류가 checkError ()를 호출하여 발생했는지의 여부를 조회 할 수 있습니다.

'프로그래밍 > 자바' 카테고리의 다른 글

토큰(Token)  (0) 2013.04.10
레이아웃(Layout) & 패널(Panel)  (0) 2013.04.05
이벤트 & 그래픽  (0) 2013.04.05
자바 파일 입출력 2 - Filter Stream  (0) 2013.04.01
자바 파일 입출력  (0) 2013.04.01