您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

java中如何读取文件

2024/3/29 6:21:32发布7次查看
java中读取文件的方法:1、通过使用【java.io】方法读取,相对于当前用户目录的相对路径读取;2、通过使用【java.lang.classloader】方法读取,相对于classpath的相对路径读取。
java中读取文件的方法:
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(...);
1、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 中)。
2、使用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知识请关注java基础教程。
以上就是java中如何读取文件的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录