2011-05-16 3 views
3

java.io.Writer 및 java.io.Reader를 확장하는 꽤 많은 클래스가 있습니다.작가 및 독자 java.io - 어떤 것을 사용해야하는지 어떻게 알 수 있습니까?

다른 것을 사용해야하는 경우가 있습니까? 그들 각각의 전반적인 유용성은 무엇입니까 (왜 그렇게 많이 있습니까?)?

"성능"속성의 차이점이 있습니까? 그들은 모두 스트림에서 쓰거나 읽습니다. 그렇지 않습니까?

다른 사람이 어디에서 사용할 지에 대한 사례를 알려주는 글을 아는 사람이 있습니까?

같은 질문은 실제 파일 처리에도 적용됩니다. 읽기/쓰기 할 파일 스트림을 여는 방법은 여러 가지가 있습니다.

감사합니다.

+1

[기본 입출력 튜토리얼] (http://download.oracle.com/javase/tutorial/essential/io/)을보십시오. – iruediger

답변

4

독자의 이름은 유스 케이스에 대해 많이 말합니다.

FileReader/StringReader/CharArrayReader/InputStreamReader는 파일, 문자열, CharArrays 또는 InputStream에서 읽는 다른 구현을가집니다. 사용법은 출처에 따라 다릅니다.

LineNumberReader/PushbackReader/BufferedReader가 '독립 실행 형'으로 작동하지 않으면 다른 소스 리더와 결합 할 수 있습니다. 예 : new BufferedReader(new FileReader(file));

이 독자는 할 수있는 특별한 경우를위한 방법을 제공합니다. 라인 번호를 얻으려면 BufferedReader을 Line 단위로 읽거나 LineNumberReader를 사용하십시오.

PipedReader은 프로그램의 부품/스레드에있는 데이터 양식을 PipedWriter과 결합하여 다른 부품/스레드에 읽는 것이 좋습니다. ...

... 특별한 경우를 위해 장식 자 패턴과 같은 리더와 작성기로 체인을 만들 수 있습니다.

+0

+1 : 친절하고 간결한 설명 :) – posdef

1

이것은 그들이 선택한 특정 디자인 패턴입니다. 필요한 수업은 "무엇이 필요한지"에 기반합니다. 파일을 읽으려면 FileReader이 필요합니다. 이러한 클래스의 대부분을 사용하면 필요한 기능을 얻기 위해 하나를 다른 클래스로 래핑 할 수 있습니다.

여기에 a nice question 얼마전에 Writer 클래스를 사용하는 것에 대해 물었습니다.