Jak utworzyć obiekt java.nio.file.Path
z obiektu String
w języku Java 7?Utwórz ścieżkę z ciągu znaków w języku Java7
tj.
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
gdzie ?
jest brakujący kod, który wykorzystuje textPath
.
Jak utworzyć obiekt java.nio.file.Path
z obiektu String
w języku Java 7?Utwórz ścieżkę z ciągu znaków w języku Java7
tj.
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
gdzie ?
jest brakujący kod, który wykorzystuje textPath
.
można po prostu użyć klasy Paths
:
Path path = Paths.get(textPath);
... zakładając, że chcesz korzystać z domyślnego systemu plików, oczywiście.
Z Javadocs .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
Path p1 = Paths.get("/tmp/foo");
jest taka sama jak
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");
W Windows tworzy plikowi C: \ Joe \ Logs \ foo.log (zakładając użytkownika domowego jak C : \ joe) W systemie Unix tworzy plik /u/joe/logs/foo.log (zakładając, że użytkownik ma jako/u/joe)
Proponuję użyć 'File.separarator' zamiast dbać o bieżący system operacyjny. Na przykład. '/ tmp/foo" 'to' File.separator + "tmp" + File.separator + "foo" ' –
Domyślam się, że nie tworzy rzeczywistego pliku, ale tworzy obiekt Path. Możesz użyć obiektu ścieżki do utworzenia rzeczywistego pliku na dysku, używając Files.createFile (logfilePath). –
Jeśli to możliwe chciałbym zaproponować stworzenie Path
bezpośrednio z elementami ścieżki:
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
jest niezależny od platformy? –
Dziękujemy! Wybrałem coś w stylu 'Path path = FileSystems.getDefault(). GetPath (textPath);' ale wydaje mi się to złe! –
@mat_boy: Dlaczego? Są one równoważne. W jaki sposób "wydaje ci się to złe"? –
Ponieważ jestem manekinem! Masz rację, absolutnie! Potrzebuję dużo odpoczynku! –