java读取文件的方法-创新互联

这篇文章运用简单易懂的例子给大家介绍java读取文件的方法,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

成都创新互联公司坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。十多年网站建设经验成都创新互联公司是成都老牌网站营销服务商,为您提供成都做网站、成都网站制作、成都外贸网站建设、网站设计、H5高端网站建设、网站制作、成都品牌网站建设微信小程序开发服务,给众多知名企业提供过好品质的建站服务。

java读取文件的两种方法:java.io和java.lang.ClassLoader

// java.io:  
File  file  =  new  File("...");  
FileInputStream  fis  =  new  FileInputStream("...");  
FileReader  fr  =  new  FileReader("...");  

//ClassLoader:  
ClassLoader  loader  =  XXXClass.class.getClassLoader();   
ClassLoader  loader2  =  Thread.currentThread().getContextClassLoader();  

URL  url  =  loader.getResource("...");  
File  file  =  new  File(url.getFile());  
InputStream  input  =  loader.getResourceAsStream("...");

java.io 包中的类总是根据当前用户目录来分析相对路径名,也就是说相对路径是否好使,取决于 user.dir 的值。系统属性 user.dir 是 JVM 启动的时候设置的,通常是 Java 虚拟机的调用目录,即执行 java 命令所在的目录。

对于 tomcat/jboss 容器,user.dir 是 %home/bin%/ 目录,因为这个目录就是我们启动 web 容器的地方

在 eclipse 中运行程序的时候,eclipse 会将 user.dir 的值设置为工程的根目录

用户目录可以使用 System.getProperty("user.dir") 来查看

所以说,使用 java.io 读取文件,无论是相对路径,还是绝对路径都不是好的做法,能不使用就不要使用(在 JavaEE 中)。

使用ClassLoader

Class.getResource() 有 2 种方式,绝对路径和相对路径。绝对路径以 / 开头,从 classpath 或 jar 包根目录下开始搜索;

相对路径是相对当前 class 所在的目录,允许使用 .. 或 . 来定位文件。

ClassLoader.getResource() 只能使用绝对路径,而且不用以 / 开头。

这两种方式读取资源文件,不会依赖于 user.dir,也不会依赖于具体部署的环境,是推荐的做法(JavaEE)

如何选取

java.io:

相对于当前用户目录的相对路径读取;注重与磁盘文件打交道或者纯 java project 中使用。

虽然 ClassLoader 方式更通用,但是如果不是 javaEE 环境,要定位到 classpath 路径下去读文件是不合理的。

java.lang.ClassLoader:

相对于 classpath 的相对路径读取;建议在 javaEE 环境中都使用这种方式。

通常,ClassLoader 不能读取太大的文件,它适合读取 web 项目的那些配置文件,如果需要读取大文件,还是要用 IO 包下的,可以先通过 ClassLoader 获取到文件的绝对路径,然后传给 File 或者其他对象,用 io 包里的对象去读取会更好些。

关于java读取文件的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:java读取文件的方法-创新互联
文章来源:http://scyanting.com/article/djgidp.html