수색…


통사론

  • Paths.get (String first, String ... more) // String 요소로 Path 인스턴스를 만듭니다.
  • Paths.get (URI uri) // URI로 Path 인스턴스를 생성합니다.

경로 만들기

Path 클래스는 프로그래밍 방식으로 파일 시스템의 경로를 나타 내기 위해 사용됩니다 (따라서 파일과 디렉토리뿐만 아니라 존재하지 않는 파일까지도 가리킬 수 있습니다)

경로는 도우미 클래스 Paths 사용하여 얻을 수 있습니다.

Path p1 = Paths.get("/var/www");
Path p2 = Paths.get(URI.create("file:///home/testuser/File.txt"));
Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt");
Path p4 = Paths.get("/home", "arthur", "files", "diary.tex");

경로에 대한 정보 검색

패스에 관한 정보는, Path 오브젝트의 메소드를 사용해 취득 할 수 있습니다.

  • toString() 은 패스의 캐릭터 toString() 표현을 돌려줍니다.

    Path p1 = Paths.get("/var/www"); // p1.toString() returns "/var/www"
    
  • getFileName() 은 파일 이름 (또는 더 구체적으로 경로의 마지막 요소 getFileName() 반환합니다.

    Path p1 = Paths.get("/var/www"); // p1.getFileName() returns "www"
    Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt"); // p3.getFileName() returns "HHGTDG.odt"
    
  • getNameCount() 는 패스를 구성하는 요소의 수를 반환합니다.

    Path p1 = Paths.get("/var/www"); // p1.getNameCount() returns 2
    
  • getName(int index) 지정된 인덱스에있는 요소를 리턴합니다.

    Path p1 = Paths.get("/var/www"); // p1.getName(0) returns "var", p1.getName(1) returns "www"
    
  • getParent() 는 부모 디렉토리의 경로를 리턴한다.

    Path p1 = Paths.get("/var/www"); // p1.getParent().toString() returns "/var"
    
  • getRoot() 는 경로의 루트를 반환합니다.

    Path p1 = Paths.get("/var/www"); // p1.getRoot().toString() returns "/"
    Path p3 = Paths.get("C:\\Users\\DentAr\\Documents\\HHGTDG.odt"); // p3.getRoot().toString() returns "C:\\"
    

경로 조작

두 경로 합류

경로는 resolve() 메소드를 사용하여 조인 할 수 있습니다. 전달 된 경로는 루트 요소를 포함하지 않는 경로 인 부분 경로 여야합니다.

Path p5 = Paths.get("/home/");
Path p6 = Paths.get("arthur/files");
Path joined = p5.resolve(p6);
Path otherJoined = p5.resolve("ford/files");
joined.toString() == "/home/arthur/files"
otherJoined.toString() == "/home/ford/files"

경로 정규화

경로에는 요소가 포함될 수 있습니다 . (당신이 현재있는 디렉토리를 가리킴)과 .. (부모 디렉토리를 가리킴).

경로에서 사용될 때, . 경로의 대상을 변경하지 않고 언제든지 제거 할 수 있으며 .. 이전 요소와 함께 제거 할 수 있습니다.

Paths API를 사용하면 .normalize() 메소드를 사용하여 수행 할 수 있습니다.

Path p7 = Paths.get("/home/./arthur/../ford/files");
Path p8 = Paths.get("C:\\Users\\.\\..\\Program Files");
p7.normalize().toString() == "/home/ford/files"
p8.normalize().toString() == "C:\\Program Files"

파일 시스템을 사용하여 정보 검색하기

파일 시스템과 상호 작용하려면 Files 클래스의 메소드를 사용하십시오.

존재 확인하기

경로가 가리키는 파일 또는 디렉토리의 존재를 확인하려면 다음 방법을 사용하십시오.

Files.exists(Path path)

Files.notExists(Path path)

!Files.exists(path) 는 반드시 Files.notExists(path) 와 같을 필요는 없습니다. 왜냐하면 세 가지 가능한 시나리오가 있기 때문입니다.

  • 파일의 또는 디렉토리의 존재가 확인 ( exists 수익을 truenotExists 반환 false 이 경우)
  • 파일 또는 디렉토리가 존재하지 false ( existsfalse 반환하고 notExiststrue 반환 함)
  • 파일이나 디렉토리의 존재 여부는 확인할 수 없습니다 (예 : 액세스 제한으로 인해) : existsnonExists 모두 false를 반환합니다.

경로가 파일 또는 디렉토리를 가리키는 지 확인

이것은 Files.isDirectory(Path path)Files.isRegularFile(Path path) 사용하여 수행됩니다.

Path p1 = Paths.get("/var/www");
Path p2 = Paths.get("/home/testuser/File.txt");
Files.isDirectory(p1) == true
Files.isRegularFile(p1) == false

Files.isDirectory(p2) == false
Files.isRegularFile(p2) == true

속성 가져 오기

다음 방법을 사용하여이를 수행 할 수 있습니다.

Files.isReadable(Path path)
Files.isWritable(Path path)
Files.isExecutable(Path path)

Files.isHidden(Path path)
Files.isSymbolicLink(Path path)

MIME 유형 가져 오기

Files.probeContentType(Path path)

이렇게하면 파일의 MIME 형식을 가져 오려고 시도합니다. 다음과 같이 MIME 유형 문자열을 반환합니다.

  • text/plain 파일의 경우 text/plain
  • HTML 페이지의 text/html
  • PDF 파일을위한 application/pdf
  • PNG 파일 용 image/png

파일 읽기

파일은 Files 클래스를 사용하여 바이트 단위 및 줄 단위로 읽을 수 있습니다.

Path p2 = Paths.get(URI.create("file:///home/testuser/File.txt"));
byte[] content = Files.readAllBytes(p2);
List<String> linesOfContent = Files.readAllLines(p2);

Files.readAllLines() 선택적으로 charset을 매개 변수로 사용합니다 (기본값은 StandardCharsets.UTF_8 임).

List<String> linesOfContent = Files.readAllLines(p2, StandardCharsets.ISO_8859_1);

파일 쓰기

파일 bite- 작성 및 라인 현명한 사용 할 수 있습니다 Files 클래스를

Path p2 = Paths.get("/home/testuser/File.txt");
List<String> lines = Arrays.asList(
    new String[]{"First line", "Second line", "Third line"});

Files.write(p2, lines);
Files.write(Path path, byte[] bytes)

기존 파일을 덮어 쓰면 존재하지 않는 파일이 생성됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow