데이터 입출력5 java.nio 패키지 사용법(Channel / Buffer / Charset) [1/1] [ java.nio.channel 패키지 ] 다양한 외부 리소스와 내부의 버퍼를 연결해주는 채널을 생성해주는 클래스들 존재 양방향 채널로 사용할 수도 있고 단방향 채널로 사용할 수도 있음 java.io의 스트림 클래스들에 비해 입출력 속도가 빠름 java.io의 스트림 클래스들과 다르게 무조건 버퍼를 사용해야 함 [ java.nio 패키지 ] boolean 타입을 제외한 원시타입 별 버퍼 클래스를 제공 Buffer 인터페이스를 상속받기 때문에 클래스들의 사용법이 거의 비슷함 파일 채널(FileChannel)과 바이트 버퍼(ByteBuffer) 클래스의 사용법 위주로 정리하겠습니다. 다른 리소스와 연결되는 채널 및 다른 타입의 버퍼 클래스도 거의 사용법은 유사합니다. 특별한 기능을 가진 채널 및 버퍼 클래.. ▸JAVA/라이브러리(API) 2019. 12. 17. java.nio.file.Files 주요 메소드 [1/1] [ Files 클래스 ] Static 메소드로 구성되어 있음 Path 객체를 이용해 파일 시스템 작업 수행 데이터 입출력에 대한 기본 개념은 아래 링크글을 참조하시면 됩니다. 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_io / nio / nio2 [1/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.io [2/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.nio [3/3] [ 생성자 ] 모두 Static 메소드로 이루어져 있어 별도의 인스턴스 생성이 없음 파일 또는 폴더의 주소 정보를 가진 Path 클래스의 인스턴스를 매개변수로 메소드 수행 boolean isDirectory(Path p) - 폴더인지 아.. ▸JAVA/라이브러리(API) 2019. 12. 16. 외부 데이터 입출력_java.nio [3/3] [ java.nio 패키지 ] New IO라는 의미로 java.io의 업그레이드 버전 NIO2는 Java Se-7 버전에서 java.nio가 한 번 더 업그레이드 되었다는 의미 굳이 NIO1, NIO2의 구분 없이 그냥 NIO를 한통으로 생각하면 됨 [ 기존 Java.io와 차이점 ] 양방향 Channel 방식을 사용해 외부 데이터와 입출력 연동 (통로가 하나만 있으면 됨) 기본적으로 버퍼(Buffer)를 사용해 속도를 높임 (커널 버퍼를 직접 사용해서 입출력 속도 향상도 가능) 비동기 지원 (메소드 호출 시점과 결과 출력 시점이 다름) Non-Blocking 지원 (I/O를 수행하는 동안 스레드가 놀지 않도록(block 당하지 않도록) 함) NIO는 어렵습니다. NIO만 정리해도 책이 한권 나올 것 같.. ▸JAVA/기본 문법 2019. 12. 16. java.io.File 주요 메소드 [1/1] [ File 클래스 ] 파일 내용이 아닌, 파일 자체(껍데기)를 다룸 NIO2만으로는 파일 조작이 어려워 병행해서 사용하면 효율적 NIO2와 서로 변환할 수 있음 파일 클래스를 사용하면 파일 스트림을 열기 전에 실제 파일에 대한 정보를 확인할 수 있고, 또 파일 자체를 삭제하거나 이름을 변경하는 등의 작업을 수행할 수 있습니다. 데이터 입출력에 대한 기본 개념은 아래 링크글을 참조하시면 됩니다. 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_io / nio / nio2 [1/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.io [2/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.nio [3/3] [ 생성자 ].. ▸JAVA/라이브러리(API) 2019. 12. 16. 외부 데이터 입출력_java.io [2/3] [ java.io 패키지 ] 아직도 많이 사용되고 있는 구버전의 입출력 패키지 java.nio(New IO, NIO)와 함께 병행해서 사용되고 있음 간단한 입출력의 경우 NIO보다 더 효율적일 수 있음 알게 모르게 항상 사용하게 되는 패키지입니다. NIO가 있긴 하지만 간단한 상황에서는 오히려 더 효과적일 수 있기 때문에 정확한 개념을 알아두는 것이 좋습니다. 외부 데이터와의 연동은 프로그램 성능에 큰 영향을 미칠 수 있습니다. 아래 글은 파일 입출력을 예제로 하였습니다. 스트림을 이용한 네트워크 입출력은 아래 링크글을 참조하시면 됩니다. 2020/02/04 - [JAVA/기본 문법] - 네트워크_소켓(Socket) 통신_IO 입출력 [1/3] [ File 클래스 ] 파일의 위치 정보를 가지고 있음 파일.. ▸JAVA/기본 문법 2019. 12. 16. 이전 1 다음 💲 추천 글 반응형