如何java.nio.file.Path
从String
Java 7中的对象创建对象?
即
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
?
缺少的代码在哪里textPath
?
如何java.nio.file.Path
从String
Java 7中的对象创建对象?
即
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
?
缺少的代码在哪里textPath
?
Answers:
Path.get()
是平台独立的吗?这意味着Path.get("lib","p2")
将与lib\p2
Windows和lib/p2
Linux中一样
从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
而不是照顾当前的操作系统。EG "/tmp/foo"
是File.separator+"tmp"+File.separator+"foo"
如果可能的话,我建议Path
直接从path元素创建:
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
即使是关于Java 7的问题,我也认为从Java 11开始知道Path
类中有一个静态方法可以立即执行此操作,这也增加了价值:
将所有路径都放在一个String中:
Path.of("/tmp/foo");
路径分为几个字符串:
Path.of("/tmp","foo");
Paths.get
。