수색…


통사론

  • 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 수익을 true 과 notExists 반환 false 이 경우)
  • 파일 또는 디렉토리가 존재하지 false ( exists 는 false 반환하고 notExists 는 true 반환 함)
  • 파일이나 디렉토리의 존재 여부는 확인할 수 없습니다 (예 : 액세스 제한으로 인해) : exists 와 nonExists 모두 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