W systemie Windows tworzy plik C: \ joe \ logs \ foo.log (zakładając, że użytkownik domowy to C: \ joe)
W systemie Unix tworzy plik /u/joe/logs/foo.log (zakładając, że użytkownik domowy to / u / joe)
Sugeruję używać File.separaratorzamiast dbać o obecny system operacyjny. Np. "/tmp/foo"JestFile.separator+"tmp"+File.separator+"foo"
mat_boy
Chyba 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).
Mr.Q
12
Jeśli to możliwe, sugeruję utworzenie Pathbezpośrednio z elementów ścieżki:
Path path =Paths.get("C:","dir1","dir2","dir3");// if neededString textPath = path.toString();// "C:\\dir1\\dir2\\dir3"
Nawet jeśli pytanie dotyczy Javy 7, myślę, że wartość dodana polega na tym, że od Javy 11 istnieje metoda statyczna w Pathklasie, która pozwala to zrobić od razu:
Path.get()
niezależny od platformy? coPath.get("lib","p2")
będzie tak jaklib\p2
w Windowsie ilib/p2
LinuksieZ javadocs .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
jest taki sam jak
W systemie Windows tworzy plik C: \ joe \ logs \ foo.log (zakładając, że użytkownik domowy to C: \ joe)
W systemie Unix tworzy plik /u/joe/logs/foo.log (zakładając, że użytkownik domowy to / u / joe)
źródło
File.separarator
zamiast dbać o obecny system operacyjny. Np."/tmp/foo"
JestFile.separator+"tmp"+File.separator+"foo"
Jeśli to możliwe, sugeruję utworzenie
Path
bezpośrednio z elementów ścieżki:źródło
Nawet jeśli pytanie dotyczy Javy 7, myślę, że wartość dodana polega na tym, że od Javy 11 istnieje metoda statyczna w
Path
klasie, która pozwala to zrobić od razu:Z całą ścieżką w jednym ciągu:
Path.of("/tmp/foo");
Ze ścieżką podzieloną na kilka ciągów:
Path.of("/tmp","foo");
źródło
Paths.get
.