java path.resolve,在哪里使用java.nio.file.Path类的resolve()和relativize()方法?

本文介绍了Java中Path类的resolve()和relativize()方法的工作原理。resolve()用于合并两个路径,将第二个路径附加到第一个路径上。relativize()则返回从一个路径到另一个路径的相对路径。示例代码展示了这两个方法的使用场景,如文件系统的路径操作和构建相对路径。

Path p1 = Paths.get("/Users/jack/Documents/text1.txt");

Path p2 = Paths.get("/Users/jack/text2.txt");

Path result1 = p1.resolve(p2);

Path result2 = p1.relativize(p2);

System.out.println("result1: "+result1);

System.out.println("result2: "+result2);

OUTPUT

result1: /Users/jack/text2.txt

result2: ../../text2.txt

I cannot understand how resolve() and relativize() works?

What is the actual use of result1 and result2?

解决方案

These are the code snippets from my code base that help you to understand the use of the resolve() method

private File initUsersText() throws Exception

{

Path dir = testdir.getPath().toRealPath();

FS.ensureDirExists(dir.toFile());

File users = dir.resolve("users.txt").toFile();

writeUser( users );

return users;

}

private File initUsersText() throws Exception

{

Path dir = testdir.getPath().toRealPath();

FS.ensureDirExists(dir.toFile());

File users = dir.resolve("users.txt").toFile();

writeUser( users );

return users;

}

And these are the examples of the use of relativize()

public ScopePath pathToClassName(Path file) {

if (!isValidClass(file))

return null;

Path relativePath = root.relativize(root.resolve(file));

String withoutExtension = removeExtension(relativePath.toString());

return new ScopePath(withoutExtension.replace(File.separator, "."));

}

private String getRelativePath(Path p) {

String relativePath = packageDir.relativize(p)

.toString();

if (File.separator.equals("\\")) {

relativePath = relativePath.replace("\\", "/");

}

return relativePath;

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值