我想从用Java实现的文本生成器生成干净的路径。
我正在使用 java.nio.file.Paths
和 java.io.File
以便以清晰的方式构建路径,但他们使用 File.separatorChar
,即系统依赖为只读,使我的生成器的输出依赖于执行它的机器!
怎样才能要求我的路径以我选择的样式打印?例如,总是以Unix的方式打印路径?
例如:System.out.println(new Paths.get("/home/user/test.txt").getParent().toString());
UNIX 环境上的预期输出:
$> /home/user
Windows 环境上的预期输出:
$> /home/user
Path
实现Iterable
,所以很容易做到:
public String toUnixPath(Path path) {
StringBuilder sb = new StringBuilder(path.isAbsolute() ? "/" : "");
for (Path element : path)
sb.append(element).append('/');
return sb.toString();
}