Java读取Properties文件有以下六种方法:

1。使用java.util.Properties类的load()方法String fileName="E:/system.properties";

InputStream in = new BufferedInputStream(new FileInputStream(fileName));

Properties p = new Properties();

p.load(in);

System.out.println(p);

2。使用java.util.ResourceBundle类的getBundle()方法ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());

ResourceBundle提供软件国际化的捷径,这个类的作用一般是用来读取资源属性文件(properties),然后根据.properties文件的名称信息(本地化信息),匹配当前系统的国别语言信息(也可以程序指定),然后获取相应的properties文件的内容。

注意:,这个properties文件的名字是有规范的:一般的命名规范是: 自定义名_语言代码_国别代码.properties,

如果是默认的,直接写为:自定义名.properties

比如:

myres_en_US.properties

myres_zh_CN.properties

myres.properties

当在中文操作系统下,如果myres_zh_CN.properties、myres.properties两个文件都存在,则优先会使用myres_zh_CN.properties,当myres_zh_CN.properties不存在时候,会使用默认的myres.properties。

例:定义三个资源文件,放到src的根目录下面,:

myres.properties

aaa=good

bbb=thanks

myres_en_US.properties

aaa=good

bbb=thanks

myres_zh_CN.properties

aaa=\u597d

bbb=\u591a\u8c22import java.util.Locale;

import java.util.ResourceBundle;

public class TestResourceBundle {

public static void main(String[] args) {

Locale locale1 = new Locale("zh", "CN");

ResourceBundle resb1 = ResourceBundle.getBundle("myres", locale1);

System.out.println(resb1.getString("aaa"));

ResourceBundle resb2 = ResourceBundle.getBundle("myres", Locale.getDefault());

System.out.println(resb2.getString("aaa"));

Locale locale3 = new Locale("en", "US");

ResourceBundle resb3 = ResourceBundle.getBundle("myres", locale3);

System.out.println(resb3.getString("aaa"));

}

}

结果:

good

3。使用java.util.PropertyResourceBundle类的构造函数InputStream in = new BufferedInputStream(new FileInputStream(name));

ResourceBundle rb = new PropertyResourceBundle(in);

PropertyResourceBundle是ResourceBundle的具体子类,是通过对属性文件的静态字符串管理来语言环境资源。与其他资源包类型不同,不能为 PropertyResourceBundle

创建子类。相反,要提供含有资源数据的属性文件。ResourceBundle.getBundle 将自动查找合适的属性文件并创建引用该文件的

PropertyResourceBundle

4。使用java.lang包的class变量的getResourceAsStream()方法InputStream in = 类名.class.getResourceAsStream(name);

Properties p = new Properties();

p.load(in);

例:import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStream;

import java.util.Properties;

public class FileGet {

private final static String SYSFILE="/system.properties";

public static void main(String[] args) throws Exception {

File file = new File((FileGet.class.getResource(SYSFILE)).getFile());

InputStream in = new BufferedInputStream(new FileInputStream(file));

Properties p = new Properties();

p.load(in);

System.out.println(p);

InputStream in2 = FileGet.class.getResourceAsStream(SYSFILE);

Properties p2 = new Properties();

p2.load(in2);

System.out.println(p2);

}

}

getResource返回的是java.net包的URL对象,getResourceAsStream返回的是java.io包inputStream

例2:

在上面的目录中,有一个src目录,那么,我们在Test类中应该如何分别获得

其中file.txt可以通过这两种方式来获取:

方法一:File file1 = new File(Test.class.getResource("file.txt").getFile());

方法二:File file2 = new File(Test.class.getResource("/com/file.txt").getFile());

file2.txt获取方法:File file3 = new File(Test.class.getResource("/file2.txt").getFile());

获取不同路径下文件传入的参数不相同。当传入的参数是没有”/”的时候,获取的是当前类所在包下的对应文件。而当参数带有”/”,则是从ClassPath根目录下获取文件。该方法的本质其实只是通过传入path构造一个绝对路径,最终还是由ClassLoader获取资源。

5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法

示例:InputStream in = 类名.class.getClassLoader().getResourceAsStream(name);

Properties p = new Properties();

p.load(in);

6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法

示例:InputStream in = ClassLoader.getSystemResourceAsStream(name);

Properties p = new Properties();

p.load(in);

补充

Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法

示例:

InputStream in = context.getResourceAsStream(path);

Properties p = new Properties();

p.load(in);

java读取properties文件_Java读取Properties文件的六种方法相关推荐

  1. java读取properties文件_java读取properties文件的几种方法

    一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取 1 Properties p=newProperties() ...

  2. java读取系统中指定的文件_java读取jar中指定的文件

    Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR ...

  3. java properties用法_java中Properties文件加载和使用方法

    一.Properties简介 Properties 类继承自HashTable,提供的方法很像Map的实现类HashMap.它在 Java 编程的早期就有了,并且几乎没有什么变化.J2SE 的 Tig ...

  4. java scanner 读取文件_Java读取文本文件

    有很多方法可以在java中读取文本文件.下面我们来逐个看看java中读取文本文件的几个方法. 在java中有很多读取文本文件的方法.文本文件由字符组成,因此可以使用Reader类.在java中读取文本 ...

  5. java代码读取excel文件_Java 读取excel 文件流代码实例

    这篇文章主要介绍了Java 读取excel 文件流代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 public static vo ...

  6. java 文件夹下的文件_java读取某个文件夹下的所有文件

    import java.io.FileNotFoundException; import java.io.IOException; import java.io.File; public class  ...

  7. java生成txt表格_java读取txt文件表格并生成新txt

    展开全部 可以使用java中的I/O流来读取文件并生产新文件,给你个代码例子:import java.io.BufferedReader; import java.io.File; import ja ...

  8. java中读取mp3文件_java读取mp3文件

    JMF实际上是Java的一个类包.JMF 2.1.1技术提供了先进的媒体处理能力,从而扩展了Java平台的功能.这些功能包括:媒体捕获.压缩.流转.回放,以及对各种主要媒体形式和编码的支 持,如M-J ...

  9. java 读excel 流_Java 读取excel 文件流代码实例

    这篇文章主要介绍了Java 读取excel 文件流代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下public static voi ...

最新文章

  1. 比Python 3.8快20%,Pyston v2正式发布
  2. 2019年上半年收集到的人工智能图神经网络干货文章
  3. 全球首富贝佐斯离婚协议达成,前妻获383亿美元
  4. redis和kafka读取代码
  5. 安装VMware Tools 灰色解决办法
  6. 网页图表Highcharts实践教程之标签组与载入动画
  7. 藏不住了,这就是阿里 AI 的真正实力!
  8. OpenCV--cvThreshold() 阈值化【转载】
  9. python commands用法_python之commands模块(执行Linux Shell命令)
  10. 关于重构中的“函数尽量小”的负作用
  11. Redis内存分配简单分析
  12. 解决360 安装补丁智能忽略的问题!
  13. 2023年起,社保断缴1次,这些资格待遇通通取消,一定要注意!
  14. 信息学奥赛一本通(c++)
  15. IP2188中文数据手册
  16. TSCLIB.DLL函数库使用说明
  17. 像听故事一样学习Linux操作系统
  18. c++ const 总结
  19. TigerGraph Cloud 使用,以及Python的链接操作
  20. video标签在安卓下微信x5浏览器的一些问题

热门文章

  1. 分享个热血三国手游辅助工具,可玩各种slg游戏,多开切号
  2. vue项目中实现锚点定位
  3. linux .mozilla文件夹,Firefox在Linux系统配置文件夹的默认路径
  4. 22天试水Java社招,历经“华为、蚂蚁、字节跳动、PDD”等六家
  5. 一张照片攻破人脸识别系统:能点头摇头张嘴,网友:太可怕!
  6. 菜鸟网络营销赚钱指南
  7. FME案例实战教程:聚焦实战应用,摆脱思路束缚,您值得拥有
  8. Android 中英文切换
  9. OpenSBI payload
  10. SQL 常用脚本整理