我如何从Java 7中的String对象创建Java .nio.file. path对象?
I.e.
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
在哪里?是缺少的使用textPath的代码。
我如何从Java 7中的String对象创建Java .nio.file. path对象?
I.e.
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
在哪里?是缺少的使用textPath的代码。
当前回答
即使这个问题是关于Java 7的,我认为从Java 11开始,在Path类中有一个静态方法可以直接做这件事,这是有价值的:
所有路径都在一个字符串中:
Path.of(“/tmp/foo”);
路径被分解成几个字符串:
Path.of(“/tmp”,“foo”);
其他回答
即使这个问题是关于Java 7的,我认为从Java 11开始,在Path类中有一个静态方法可以直接做这件事,这是有价值的:
所有路径都在一个字符串中:
Path.of(“/tmp/foo”);
路径被分解成几个字符串:
Path.of(“/tmp”,“foo”);
来自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(假设用户home为C:\joe) 在Unix中,创建文件/u/joe/logs/foo.log(假设home用户为/u/joe)
如果可能的话,我建议直接从Path元素中创建Path:
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
你可以使用Paths类:
Path path = Paths.get(textPath);
... 当然,假设您想使用默认文件系统。