반응형
출처-http://freeminderhuni.blogspot.kr/2013/10/7-nio2-10.html
10.1 java.io.File을 이용한 코드 리팩토링
File.toPath() 사용하여 Path 객체로 변환하기
JavaDoc 설명 |
java.io.File |
java.nio.file.Path |
|
클래스 이름 대응 관계 |
java.io.File |
java.io.file.Path |
|
경로이름과 객체의 동등성을 테스트 한다. |
File.equals(Object) |
Path.equals(Object) |
|
두 경로 이름을 사전순으로 비교한다. |
File.compareTo(File) |
Path.compareTo(Path) |
|
경로명에 대한 절대 경로명을 문자열로 반환한다. |
File.getAbsolutePath() |
Path.toAbsolutePath() |
|
경로명을 절대 경로 형식으로 반환한다. |
File.getAbsoluteFile() |
Path.toAbsolutePath() |
|
경로명을 표준 형식 문자열로 반환한다.(정규화) |
File.getCanonicalPath(0 |
Path.toRealPath(LinkOption…)
Path.normalize() |
|
경로명을 표준 형식으로 반환한다. |
File.getCanonicalFile() |
Path.toRealPath(LinkOption…)
Path.normalize() |
|
경로명을 나타내는 URI를 생성한다. |
File.toURI() |
Path.toUri() |
|
일반 파일인지 테스트한다. |
File.isFile() |
Files.isRegularFile(Path,LinkOption…) |
|
디렉토리 인지 여부 |
File.isDirectory() |
Files.isDirectory(Path,LinkOption…) |
|
숨김 파일 여부 |
File.isHidden() |
Files.isHidden(Path) |
|
읽은 수 있는지 |
File.canRead() |
Files.isReadable(Path) |
|
수정 가능 한지 |
File.canWrite() |
Files.isWritable(Path) |
|
실행 가능 한지 |
File.canExecute() |
Files.isExecutable(Path) |
|
실제 존재 여부 |
File.exist() |
Files.exists(Path,LinkOption…)
Files.notExists(Path,LinkOption…) |
|
디렉토리 생성 |
File.mkdir() |
Files.createDirectory(Path,FileAttribute<?>...) |
|
패스 있는 디렉토리 모두 생성 |
File.mkdirs) |
Files.createDirectories(Path,FileAttribute<?>...) |
|
파일이 존재 않을 때만 생성 |
File.createNewFile() |
Files.createFile(Path,FileAttribute<?>...) |
|
하위 목록들을 반환한다.(문자열 배열로) |
File.list()
File.listFiles() |
Files.newDirectoryStream(Path) |
|
하위 목록들을 반환(필터 적용) |
File.list(FilenameFilter)
File.listFiles(FileFilter)
File.listFiles(FileNameFilter) |
Files.newDirectoryStream(Path, DirectoryStream.Filter<? super Path>)
Files.newDirectoryStream(Path,String) |
|
파일 크기 |
File.length() |
Files.size(Path) |
|
파일 삭제 |
File.delete() |
Files.delete(Path)
Files.deleteIfExists(Path) |
|
파일 이름 변경 |
File.renameTo(File) |
Files.move(Path,Path,CopyOption) |
|
실행 권한으로 설정 |
File.setExecutable(boolean,boolean) |
Files.setAttribute(Path,String,Object,LinkOption…) |
|
읽기 권한으로 설정 |
File.setReadable(boolean,boolean) |
Files.setAttribute(Path,String,Object,LinkOption…) |
|
읽기 전용으로 설정 |
File.setReadOnly() |
Files.setAttribute(Path,String,Object,LinkOption…) |
|
쓰기 권한으로 설정 |
File.setWritable(boolean,boolean) |
Files.setAttribute(Path,String,Object,LinkOption…) |
|
파일 수정일 얻기 |
File.lastModified() |
Files.getLastModifiedTime(Path,LinkOption...) |
|
파일 수정일 변경 |
File.setLastModified(long) |
Files.setLastModified(Path,FileTime) |
|
임시 파일 디렉토리에 임시 파일 생성(접두어 사용) |
File.createTempFile(String,String) |
File.createTempFile(String prefix,String suffix,FileAttribute<?>...attrs) |
|
지정된 디렉토리에 임시 파일 생성 |
File.createTempFile(String,String,File) |
File.createTempFile(Path dir,String prefix,String suffix,FileAttribute<?>...attrs) |
|
파티션의 크기를 반환 |
File.getTotalSpace() |
FileStore.getTotalSpace() |
|
파티션의 여유 공간 반환 |
File.getFreeSpace() |
FileStore.getUnallocatedSpace(0 |
|
파티션의 가상머신이 이용할 수는 바이트 수 반환(free보다 usable 사용) |
File.getUsableSpace() |
FileStore.getUsableSpace() |
|
파일시스템 루트 나열 |
File.listRoots() |
FileSystem.getRootDirectories() |
|
임의 접근 파일 |
java.io.RandomAccessFile |
java.nio.channels.SeekableByteChannel |
|
가상 머신 종료시 경로명에 파일 삭제 하기 |
File.deleteOnExit() |
DELETE_ON_CLOSE 옵션으로 대체 |
|
두 경로를 조합하기 |
new File(parent,”new_file”) |
parent.resolve(“new_file”) |
10.2 ZIP 파일시스템 제공자로 작업하기
ZFSP (ZIP 파일 시스템)
ZIP 파일 시스템의 설정 가능 속성
-
create : true | false를 지정 하지만 (문자열임) 값이 true 이면 ZFSP는 파일이 없을 때 새 ZIP 파일을 생성한다.
-
encoding : 인코딩 스킴을 가르키는 문자열 값 (UTF-8,US-ASCII,ISO-8859-1) 기본값은 UTF-8
10.3 사용자 지정 파일시스템 제공자 개발 시에 고려할 사항
관련 클래스 java.nio.file.spi.FileSystemProvider, 사용자 지정 파일 시스템 제공자는 java.nio.file.FileSystem 인스턴스를 위해 이 클래스를 팩토리로 구현한다. URI 스킴으로 식별하고자 한다면 URI 스킴을 갖고 있어야 함.
10.3.1 사용자 지정 파일시스템 제공자 클래스 생성하기
생성 단계
-
java.nio.file.spi.FileSystemProvider 클래스를 상속
-
제공자를 위한 URI 스킴을 정의 한다.(getScheme() 메소드가 이 URI 스킴을 반환해야 한다.)
-
제공자의 생성된 파일시스템을 관리하는 내부 캐시를 생성한다.
-
파일시스템 생성과 기존 파일시스템의 참조를 가져오는 newFileSystem()과 getFileSystem() 메소드를 구현한다.
-
newFileChannel() 또는 newAsyncronousFileChannel() 메소드를 구현한다.이들 메서드는 파일시스템에서 파일을 읽거나 쓸 수 있는 FileChannel 객체를 반환한다.
10.3.2 사용자 지정 파일시스템 클래스 생성하기
생성 단계
-
java.nio.file.FileSystem 클래스를 상속
-
자신의 용도에 따라 파일 시스템의 메소드를 구현한다.(루트의 개수, 읽기/쓰기 접근,파일 저장소 등을 정의해야 한다>)
반응형
'Java' 카테고리의 다른 글
java object 삭제 ? 초기화 ? (0) | 2014.09.18 |
---|---|
자바 오늘 날짜 구하는 메서드 및 SimpleDateFormat 패턴 (0) | 2014.07.18 |
double 소수점 첫째자리까지만 나오게... (0) | 2014.07.15 |
textarea 줄바꿈.. java... (0) | 2014.07.14 |
java & javascript 문자 모든 공백 제거 (0) | 2014.06.23 |