我想在Java中读取符号链接的内容,而不需要跟随符号链接。我知道Files
中有许多功能允许LinkOption.NOFOLLOW_LINKS
选项,包括Files.copy(symlinkpath, newsymlinkpath, LinkOption.NOFOLLOW_LINKS)
,但是,看起来像FileInputStream
这样的输入流没有这个相同的选项(默认情况下它会尝试遵循符号链接)。
在Java中,将符号链接的字节表示读入缓冲区似乎很容易,但我似乎弄不明白。
java. io.file。文件有readSymbolicLink,它做你想要的。
读取一个符号链接的目标(可选操作)。
如果文件系统支持符号链接,则使用此方法读取链接的目标,如果文件不是符号链接则失败。链路的目标不需要存在。返回的Path对象将与link关联到同一个文件系统。
的例子:
try {
Path file = Files.readSymbolicLink(link);
} catch (IOException x) {
System.err.println(x);
}