Erstellt unter Windows die Datei C: \ joe \ logs \ foo.log (unter der Annahme, dass der Benutzer zu Hause als C: \ joe ist). Erstellt unter
Unix die Datei /u/joe/logs/foo.log (unter der Annahme, dass der Benutzer als / u / joe zu Hause ist).
Ich schlage vor, zu verwenden, File.separaratoranstatt sich um das aktuelle Betriebssystem zu kümmern. ZB "/tmp/foo"istFile.separator+"tmp"+File.separator+"foo"
mat_boy
Ich denke, es wird nicht die eigentliche Datei erstellt, aber es wird ein Pfadobjekt erstellt. Mit dem Pfadobjekt können Sie die eigentliche Datei auf der Festplatte mithilfe von Files.createFile (logfilePath) erstellen.
Mr.Q
12
Wenn möglich würde ich vorschlagen, die PathElemente direkt aus dem Pfad zu erstellen :
Path path =Paths.get("C:","dir1","dir2","dir3");// if neededString textPath = path.toString();// "C:\\dir1\\dir2\\dir3"
Selbst wenn es um Java 7 geht, ist es meiner Meinung nach ein Mehrwert zu wissen, dass es ab Java 11 eine statische Methode gibt Path Klasse gibt, die dies sofort ermöglicht:
Path.get()
ist plattformunabhängig? Das heißt, dasPath.get("lib","p2")
wird wielib\p2
unter Windows undlib/p2
Linux seinVon der javadocs .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
ist das gleiche wie
Erstellt unter Windows die Datei C: \ joe \ logs \ foo.log (unter der Annahme, dass der Benutzer zu Hause als C: \ joe ist). Erstellt unter
Unix die Datei /u/joe/logs/foo.log (unter der Annahme, dass der Benutzer als / u / joe zu Hause ist).
quelle
File.separarator
anstatt sich um das aktuelle Betriebssystem zu kümmern. ZB"/tmp/foo"
istFile.separator+"tmp"+File.separator+"foo"
Wenn möglich würde ich vorschlagen, die
Path
Elemente direkt aus dem Pfad zu erstellen :quelle
Selbst wenn es um Java 7 geht, ist es meiner Meinung nach ein Mehrwert zu wissen, dass es ab Java 11 eine statische Methode gibt
Path
Klasse gibt, die dies sofort ermöglicht:Mit dem ganzen Pfad in einem String:
Path.of("/tmp/foo");
Mit dem Pfad in mehrere Strings unterteilt:
Path.of("/tmp","foo");
quelle
Paths.get
.