千家信息网

java读写文件有哪几种方式

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,java读写文件有哪几种方式,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java读取文件的两种方法:java.io和java.la
千家信息网最后更新 2026年11月04日java读写文件有哪几种方式

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("...");

  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读写文件有哪几种方式问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

路径 文件 目录 方式 环境 用户 问题 做法 容器 对象 开头 所在 方法 时候 更多 根目录 还是 分析 定位 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 西安纸贵互联网科技有限公司 科技互联网公司装修 朗新科技与工业互联网 壹账通互联网科技 奇酷互联网络科技公司 天下捷融互联网科技 火传媒上海互联网科技 互联网科技有限公司 翻译 盛创互联网科技有限公司 宁波青枫互联网科技有限公司 语蝶互联网科技有限公司 新兴科技互联网创新大赛颁奖典礼 小米互联网科技园入驻 中国互联网有什么科技 杭州披云加互联网科技有限公司 半导体是互联网高科技吗 郑州欣桑互联网科技有限公司 广东鹅鹅鹅互联网科技有限公司 互联网科技职业技能培训学校 互联网科技创业计划的风险分析 西安互联网科技 互联网 卓越科技 新浪科技互联网 四个字互联网科技公司取名 华脉科技工业互联网产品 互联网企业科技类企业如何做账 上海创道互联网络科技有限公司 互联网硬科技公司 湖北辰鑫科技互联网 武汉亿视互联网科技有限公司
0