项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

比如我们有以下目录

|--project|--src|--javaapplication|--Test.java|--file1.txt|--file2.txt|--build |--javaapplication|--Test.class|--file3.txt|--file4.txt

在上面的目录中,有一个src目录,这是JAVA源文件的目录,有一个build目录,这是JAVA编译后文件(.class文件等)的存放目录
那么,我们在Test类中应该如何分别获得
file1.txt file2.txt file3.txt file4.txt这四个文件呢?

首先讲file3.txt与file4.txt
file3.txt:
方法一:

File file3 = new File(Test.class.getResource("file3.txt").getFile());

方法二:

File file3 = new File(Test.class.getResource("/javaapplication/file3.txt").getFile());

方法三:

File file3 = new File(Test.class.getClassLoader().getResource("javaapplication/file3.txt").getFile());

file4.txt:
方法一:

File file4 = new File(Test.class.getResource("/file4.txt").getFile());

方法二:

File file4 = new File(Test.class.getClassLoader().getResource("file4.txt").getFile());

很好,我们可以有多种方法选择,但是file1与file2文件呢?如何获得?
答案是,你只能写上它们的绝对路径,不能像file3与file4一样用class.getResource()这种方法获得,它们的获取方法如下
假如整个project目录放在c:/下,那么file1与file2的获取方法分别为
file1.txt
方法一:

File file1 = new File("c:/project/src/javaapplication/file1.txt");

方法二:。。。没有

file2.txt
方法一:

File file2 = new File("c:/project/src/file2.txt");

方法二:。。。也没有

重点注意地方:
总结一下,就是你想获得文件,你得从最终生成的.class文件为着手点,不要以.java文件的路径为出发点,因为真正使用的就是.class,不会拿个.java文件就使用,因为java是编译型语言嘛

至于getResouce()方法的参数,你以class为出发点,再结合相对路径的概念,就可以准确地定位资源文件了,至于它的根目录嘛,你用不同的IDE build出来是不同的位置下的,不过都是以顶层package作为根目录,比如在Web应用中,有一个WEB-INF的目录,WEB-INF目录里面除了web.xml文件外,还有一个classes目录,没错了,它就是你这个WEB应用的package的顶层目录,也是所有.class的根目录“/”,假如clasaes目录下面有一个file.txt文件,它的相对路径就是"/file.txt",如果相对路径不是以"/"开头,那么它就是相对于.class的路径。。

还有一个getResourceAsStream()方法,参数是与getResouce()方法是一样的,它相当于你用getResource()取得File文件后,再new InputStream(file)一样的结果。getResource().getFile()得到的是文件的string,例如可以这么写:

File file = new File(Demo01.class.getResource("/a.properties").getFile());

而getResourceAsStream()方法返回的是一个inputStream,例如可以这么写:

InputStream in = Demo01.class.getResourceAsStream("/a.properties");

java 读取配置文件的几种方法相关推荐

  1. java读取配置文件的几种方法

    在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据笔者工作中用到的读取配置文件的方法小小总结一下,主要叙述的是spring读取配置文件的方法. 一.读取xml配置 ...

  2. java加载xml配置文件_java读取配置文件的几种方法

    原标题:java读取配置文件的几种方法 在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据笔者工作中用到的读取配置文件的方法小小总结一下,主要叙述的是spring ...

  3. Java读取配置文件的五种方式

    目录 一.ServletContext获取真实路径 二.通过ResourceBundle类获取配置文件资源 三.ClassLoader方式读取 四.使用Sping提供的PropertiesLoader ...

  4. 用Java读取文件的5种方法-BufferedReader,FileInputStream,文件,扫描仪,RandomAccessFile

    There are many different ways to read a file in Java. In this tutorial, we will look into 5 differen ...

  5. Spring读取配置文件的几种方法(从0开始)

    新建一个Maven空项目 新建配置文件 在src -> main下新建一个资源目录resources,然后在该资源目录下新建一个application.properties文件. #自定义内容 ...

  6. java遍历文件和归类_java读取文件的两种方法:java.io和java.lang.ClassLoader

    java读取文件的两种方法:java.io和java.lang.ClassLoader 什么时候使用java.io,什么时候使用java.lang.ClassLoader呢? (注:要是之前读xml文 ...

  7. java 读取配置文件工具_java读取配置文件信息properties的工具类

    java读取配置文件信息properties的工具类,介绍一个工具PropertyReader.java,读取项目配置文件信息 package mymail; import java.io.File; ...

  8. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax;import org.xml.sax.Attributes; import org.xml.sax.SAXEx ...

  9. java读取配置文件详解

    目录 使用类加载器加载配置文件 ServletContext方式 读取web.xml配置 前言: 1 这是一个java读取配置文件的方法集合,只有常见的方式 2 围绕的内容大部分是读取properti ...

  10. Java 键盘输入的三种方法

    Java 键盘输入的三种方法 1.System.in和System.out方法:从控制台接收一个字符,然后将其打印出来 虽然此方式实现了从键盘获取输入的字符,但是System.out.read()只能 ...

最新文章

  1. 终于有人把Python讲清楚了!
  2. python字符串删除,列表删除以及字典删除的总结
  3. 取input 输入_tensorRT动态输入(python)
  4. 一些著名的大公司JAVA面试题目
  5. 关于Tomcat5.5中EL表达式无效的解决办法
  6. jvm垃圾回收机制_干货|JVM垃圾回收机制
  7. 复数基础—— i = 根号 -1 _3
  8. android的子菜单是否支持嵌套,Android的两种菜单
  9. VC9、VC11、VC14、VC15库 最新下载链接
  10. Android访问assets本地Json文件
  11. 数据分析|基础概念/excel/tableau自学笔记
  12. 和极有家一起玩转智能家居——极有家未来之家合作招募
  13. 人脸识别实践(2) - 人脸识别系统展示
  14. Huffman Tree
  15. 最后几张票,送完即止:KubeCon 2021中国大会
  16. 康姿百德 “神奇”床垫包治百病是谣传
  17. 【操作系统】“哲学家进餐”问题
  18. 关于Symantec(赛门铁克)认证服务
  19. 史上最全CCA Spark and Hadoop Developer (CCA175) 开发者认证考试信息
  20. POJ3208魔鬼数

热门文章

  1. 网络应用瑞士军刀——Zentyal(4 常用命令)
  2. 1.2 cacti安装
  3. 传统CPU架构不再是高性能计算唯一选择
  4. FLEX 字符串处理函数
  5. 强大的.NET反编译工具Reflector及插件 (转)
  6. 死锁的产生原因和解决办法
  7. idea项目工程里面自动生成的.iml文件无法删除的解决方法
  8. mysql 的 sql 语句的机读顺序
  9. js 中 ! + - ~ 符号和匿名函数
  10. Taro-library:Taro + Redux + 本地 Mock Server 示例项目