Java 7 java.nio.file.Path
의 String
객체에서 객체를 만들려면 어떻게 해야합니까?
즉
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
?
를 사용하는 누락 된 코드는 어디에 있습니까 textPath
?
Java 7 java.nio.file.Path
의 String
객체에서 객체를 만들려면 어떻게 해야합니까?
즉
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
?
를 사용하는 누락 된 코드는 어디에 있습니까 textPath
?
답변:
Path.get()
플랫폼 독립적입니까? Windows와 Linux 에서와 Path.get("lib","p2")
같은 의미lib\p2
lib/p2
javadocs에서 .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
Path p1 = Paths.get("/tmp/foo");
와 같다
Path p4 = FileSystems.getDefault().getPath("/tmp/foo");
Path p3 = Paths.get(URI.create("file:///Users/joe/FileTest.java"));
Path p5 = Paths.get(System.getProperty("user.home"),"logs", "foo.log");
Windows에서는 C : \ joe \ logs \ foo.log 파일을 작성합니다 (사용자 홈을 C : \ joe로 가정)
Unix에서 /u/joe/logs/foo.log 파일을 작성합니다 (사용자 홈을 / u / joe로 가정)
File.separarator
현재 OS를 관리 하는 대신 사용 하는 것이 좋습니다 . 예를 들면 "/tmp/foo"
이다File.separator+"tmp"+File.separator+"foo"
가능한 경우 Path
경로 요소에서 직접 작성하는 것이 좋습니다 .
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
Java 7에 관한 질문이 있더라도 Java 11부터는 Path
이것을 즉시 수행 할 수 있는 정적 메소드가 클래스에 있음 을 아는 가치가 있다고 생각합니다 .
하나의 문자열에 모든 경로가있는 경우 :
Path.of("/tmp/foo");
경로를 여러 문자열로 분류하면 다음과 같습니다.
Path.of("/tmp","foo");
Paths.get
.