这些Java教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
有关Java SE 9和后续版本中更新的语言特性的摘要,请参阅Java语言更改。
有关所有JDK版本的新功能、增强功能以及已删除或弃用选项的信息,请参阅JDK发行说明。
符号链接是一个特殊的文件,它作为对另一个文件的引用。在大多数情况下,符号链接对应用程序来说是透明的,对符号链接的操作会自动重定向到链接的目标。(指向的文件或目录被称为链接的目标)。只有在删除或重命名符号链接时,链接本身才会被删除或重命名,而不是链接的目标。
在下图中,logFile
对用户来说看起来是一个普通文件,但实际上它是一个指向dir/logs/HomeLogFile
的符号链接。链接的目标是HomeLogFile
。
对用户来说,符号链接通常是透明的。读取或写入符号链接与读取或写入任何其他文件或目录相同。
解析链接的意思是将文件系统中的实际位置替换为符号链接。在这个例子中,解析logFile
得到的是dir/logs/HomeLogFile
。
在现实世界的场景中,大多数文件系统广泛使用符号链接。偶尔,粗心创建的符号链接可能会导致循环引用。当链接的目标指向原始链接时,就会发生循环引用。循环引用可能是间接的:目录a
指向目录b
,目录b
指向目录c
,后者包含一个指向目录a
的子目录。当程序递归遍历目录结构时,循环引用可能会导致混乱。但是,这种情况已经考虑到了,不会导致程序无限循环。
下一页将讨论Java编程语言中文件I/O支持的核心,Path
类。