首页 > 编程知识 正文

scanbasepackages的作用,java path环境变量内容

时间:2023-05-04 02:12:49 阅读:114546 作者:4603

这些方法对没有仔细研究过的人来说确实有点困扰,很难分清。

其实,我想说这些难度来自于我们对文件系统认知的偏向,我不知道大家是怎么理解的。 我的大学没有深入研究过文件,以为是“文件”这个概念在java世界的抽象,但事实并非如此。

今天拿起java的jdk进行调查时,发现了以下定义。

anabstractrepresentationoffileanddirectorypathnames .也就是说,文件不是“文件”的抽象。 是路径名的抽象! 我们在new中出现的File实例只是路径名,要处理文件,java实际上是通过管道处理路径名。

另一个概念必须同时区分abstract pathname和pathname。 根据jdk的理解,在构建File时,我们总是传递表示路径的字符串。 例如,A。 由于Java的平台无关性,该a一定能够与系统无关地使jvm识别字符串的层次关系就好了。 您不需要在意Unix系统是“/”。 因为windows系统为“”。 所以我们不应该在意操作系统! 如果你介意的话,也就是说我的程序在Linux上运行时,写如下。

filef=newfile('./f.txt ); 几天后,我在windows上运行。 这需要改为:

filef=newfile('.f.txt );

这显然不符合java的设计理念“run anywhere”。

请试试:

我在windows上运行的程序是,

import java.io.File; public class main { publicstaticvoidmain (字符串[ ] args ) ) fileF1=newfile('./F1.txt ' ); system.out.println(F1.GetPath ) ); fileF2=newfile('.F1.txt ); system.out.println(F2.GetPath ); fileF3=newfile('.///F1.txt ); system.out.println(F3.GetPath ); fileF4=newfile('.//? 什么?' F1.txt '; system.out.println(F4.GetPath ); }结果:

也就是说,我们制作File时使用的是“pathname”。 无论平台如何,都不需要在意操作系统。 只需传递表示适当的友好目录分割的符号即可。 (这个还不确切,()、()、()斜线之类的可以吧。 )、真正致力于操作系统相关问题的是文件系统自身。 接收与给定操作系统无关的字符串,并从该路径的字符串中提取路径名,即创建文件的实例。 此实例内部包含依赖于操作系统的路径名,通过该方法可以获得依赖于操作系统的路径名。 也就是说,File类可以帮助您进行转换。 与操作系统相关的路径名jdk称为“abstract pathname”。

标题的第一个方法是做这个。

file.getpath (:convertsthisabstractpathnameintoapathnamestring.theresultingusesthedefaultname-separatorcharactoractotod

这是对jdk的解释,它可以返回abstract pathname的字符串格式,并使用与操作系统相关的分隔符。 简言之,该方法是返回将构建file时使用的路径字符串转换后的OS相关路径。 和什么是相对的没有任何关系,只要传达什么,我就会转动什么,回来。

getabsolutepath (:returnstheabsolutepathnamestringofthisabstractpathname。

ifthisabstractpathnameisalreadyabsolute, thenthepathnamestringissimplyreturnedasifbythegetpath (method.ifthisabstractpathnameistheemptyabstractpathnamethenthepathepathepathepathepathepathethepathathathathnathethathet ectory,whichisnamedbythesystempropertyuser.dir, is returned.otherwisethispathnameisresolvedinasystem -从属way.onunixsysteent arelativepathnameismadeabsolutebyresolvining ory.onMicrosoftwindowssystems,arelativepathnameismadeabsolutebyresolvingitagainstthecurrentdirectoryofthedrivenamedbythepadbythepathepapapate if not,itisresolvedagainstthecurrentuserdirectory。

如果给定的参数是绝对路径,则表示返回getPath (。 否则,添加user.dir路径,用系统相关分隔符分隔,然后返回。 与getPath相比,user.dir路径更多。 此路径通常是项目的根目录。

getCanonicalPath () )更容易理解了。 不贴jdk原文的解释。 可以直接按照字面意思推测。 getAbsolutePath ) ) ) )的结果,然后再转换一次,去除其中类似' ./'的东西,恢复为唯一的形状。 只包含文件夹实际名称和分隔符的路径,不像父目录

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。