No Windows, cria o arquivo C: \ joe \ logs \ foo.log (assumindo a origem do usuário como C: \ joe)
No Unix, cria o arquivo /u/joe/logs/foo.log (assumindo a origem do usuário como / u / joe)
Sugiro usar em File.separaratorvez de cuidar do sistema operacional atual. Por exemplo, "/tmp/foo"éFile.separator+"tmp"+File.separator+"foo"
mat_boy 12/09
Eu acho que ele não cria o arquivo real, mas cria um objeto Path. Você pode usar o objeto path para criar o arquivo real no disco, usando Files.createFile (logfilePath).
Mr.Q
12
Se possível, eu sugeriria a criação Pathdireta dos elementos do caminho:
Path path =Paths.get("C:","dir1","dir2","dir3");// if neededString textPath = path.toString();// "C:\\dir1\\dir2\\dir3"
Mesmo quando a pergunta é sobre o Java 7, acho que agrega valor saber que, a partir do Java 11, existe um método estático na Pathclasse que permite fazer isso imediatamente:
Com todo o caminho em uma String:
Path.of("/tmp/foo");
Com o caminho dividido em várias seqüências de caracteres:
Path.get()
independente de plataforma? o que significa quePath.get("lib","p2")
será comolib\p2
no Windows elib/p2
no LinuxDos javadocs .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
é o mesmo que
No Windows, cria o arquivo C: \ joe \ logs \ foo.log (assumindo a origem do usuário como C: \ joe)
No Unix, cria o arquivo /u/joe/logs/foo.log (assumindo a origem do usuário como / u / joe)
fonte
File.separarator
vez de cuidar do sistema operacional atual. Por exemplo,"/tmp/foo"
éFile.separator+"tmp"+File.separator+"foo"
Se possível, eu sugeriria a criação
Path
direta dos elementos do caminho:fonte
Mesmo quando a pergunta é sobre o Java 7, acho que agrega valor saber que, a partir do Java 11, existe um método estático na
Path
classe que permite fazer isso imediatamente:Com todo o caminho em uma String:
Path.of("/tmp/foo");
Com o caminho dividido em várias seqüências de caracteres:
Path.of("/tmp","foo");
fonte
Paths.get
.