本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看 活动链接
问题:在Java里面怎么样合并路径
Java里面有和 C#/.NET的System.IO.Path.Combine()等价的方法吗?或者任何可以完成这样的代码。
这个静态方法将一个或者多个字符串合并为路径
回答一
你应该使用一个为了表示文件系统中路径而设计的类,而不是什么都基于字符串来搞
如果你现在使用的是Java 7或者 Java 8,你应该强烈考虑java.nio.file.Path这个类。Path.resolve可以用来合并另一个路径或者字符串。路径帮助类也是有用的。例如:
Path path = Paths.get("foo", "bar", "baz.txt");
If you need to cater for pre-Java-7 environments, you can use java.io.File, like this:
如果你要搞Java7之前的环境的话,你可以使用java.io.File,像这样:
File baseDirectory = new File("foo");
File subDirectory = new File(baseDirectory, "bar");
File fileInDirectory = new File(subDirectory, "baz.txt");
如果你需要返回一个字符串的话,你可以调用getPath().事实上,如果你真的要模仿Path.Combine,你只需要这样写:
public static String combine(String path1, String path2)
{
File file1 = new File(path1);
File file2 = new File(file1, path2);
return file2.getPath();
}
回答二
平台无关的实现(使用 File.separator ,它工作的话完全取决于它运行的操作系统)
java.nio.file.Paths.get(".", "path", "to", "file.txt")
// 相对 unix 路径: ./path/to/file.txt
// 相对 windows 路径: .\path\to\filee.txt
java.nio.file.Paths.get("/", "path", "to", "file.txt")
// 绝对 unix 路径: /path/to/filee.txt
// windows n网络 驱动 路径: \\path\to\file.txt
java.nio.file.Paths.get("C:", "path", "to", "file.txt")
// 绝对 windows 路径:C:\path\to\file.txt
文章翻译自Stack Overflow:stackoverflow.com/questions/4…