제가 알기로는 자바에서 파일 입출력 등을 위해 스트림을 여는 클래스들이 아주 많은 것으로 알고 있습니다. 일례로 텍스트 파일에 어떤 내용을 읽고 쓰는 방법만 해도 자바에서는 여러가지 방법이 있는 걸로 알고 있는데요. 경우에 맞게 최적의 클래스를 골라서 쓸 수 있으면 그것이 제일 베스트겠지만 그래도 그 중에 제일 좋은 클래스를 하나 꼽으신다면 어떤 것이 있을까요? 추천 이유도 밝혀주시면 공부에 많은 도움이 될 듯 합니다.
제가 알기로는 자바에서 파일 입출력 등을 위해 스트림을 여는 클래스들이 아주 많은 것으로 알고 있습니다. 일례로 텍스트 파일에 어떤 내용을 읽고 쓰는 방법만 해도 자바에서는 여러가지 방법이 있는 걸로 알고 있는데요. 경우에 맞게 최적의 클래스를 골라서 쓸 수 있으면 그것이 제일 베스트겠지만 그래도 그 중에 제일 좋은 클래스를 하나 꼽으신다면 어떤 것이 있을까요? 추천 이유도 밝혀주시면 공부에 많은 도움이 될 듯 합니다.
3개의 의견 from SLiPP
파일 입출력을 담당하는 기본 클래스는 FileInputStream/FileOutputStream(이미지 파일과 같은 바이트 파일 처리), FileReader/FileWriter는 Character 단위로 파일 입출력.
이 기본 클래스가 파일에 대한 입출력을 담당하고, 그 이외 부가적인 기능을 추가하고 싶으면 다양한 입출력 API를 활용하면 된다.
Java IO는 Decorator Pattern 기반으로 구현되어 있다. http://stackoverflow.com/questions/6366385/decorator-pattern-for-io 문서 참고해 봐라. Decorator Pattern을 이해하면 Java IO 이해하는데 많은 도움이 될 거야. Java IO 관련 클래스는 많지만 Decorator Pattern을 이해하면 전체적으로 대략적인 구조를 이해할 수 있을거야. Decorator Pattern을 이해하기 위해 Java IO 소스 코드를 읽어 보는 것도 추천한다.
@자바지기 String 처리를 할때는 어떤가요? 제가 보고있는 서적에서는 지금 FileInputStream에서 바이트로 읽어와 String을 만드는데요.. FileReader도 Character 단위로 처리되면 결국 같은 String 변환이 가능해질 것 같은데.. 전에 두 클래스의 차이를 수업때 살펴본것 같긴 한데 효율까지 살펴보았나는 기억이 가물가물하네요..
@김민혁 나도 둘 사이의 효율성을 따지라면 뭐가 더 좋을지 성능 테스트를 해보지 않아서 모르겠다. 네가 직접 테스트해보고 눈으로 확인해 보면 좋겠다. 나라면 다음과 같은 부분에 의문을 가지고 하나씩 접근해 보겠다.
위 질문 이외에도 꼬리에 꼬리는 무는 질문들이 계속 나올 수 있을 듯하다. 너만의 해결 방식을 찾아 해결해 나가면서 Stream에 대해 더 깊이 있게 이해하면 좋겠다. 단순히 가장 효율적인 소스 코드를 얻기 보다는 더 깊이 있게 파고 들다보면 네가 생각하는 가장 효율적인 방법을 찾아낼 수 있지 않을까 생각한다.
학습하는 과정에서 해소되는 질문들이 있다면 다른 이들에게 공유까지 해준다면 더 없이 좋겠다.
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.