自己定义一个属性文件:例如prop.properties

baseFilePath=D\:/kuanter/resource

tesx=abcd

我们要做的第一步就是要将文件读取到Properties类对象中,由于load有一个参数是InputStream,所以我们可以用 InputStream的子类FileInputStream将属性文件读取到Properties对象中,知道prop.properties的路径,我们就用FileInputStream(String name)构造函数:

Properties prop = new Properties();//属性集合对象

FileInputStream fis = new FileInputStream("prop.properties");//属性文件流

prop.load(fis);//将属性文件流装载到Properties对象中

1.//获取属性值,baseFilePath已在文件中定义

2. System.out.println("获取属性值:baseFilePath=" + prop.getProperty("baseFilePath"));

3. //获取属性值,country未在文件中定义,将在此程序中返回一个默认值,但并不修改属性文件

4. System.out.println("获取属性值:country=" + prop.getProperty("country", "中国"));

在保存属性集合到文件之前,我们还有一件事情就是如何修改和添加新的属性到属性集合,这里使用了一个方法就是setProperty(String key, String value),这个方法就是当属性集合中存在指定的key时,就修改这个key的值,如果不存在,就新建一个key,同样是通过键值关系保存的,但值得注意的是,Properties类继承自Hashtable,所以也可以用Hashtable的put和putAll方法保存,但强烈反对使用这两个方法,因为它们允许调用方插入其键或值不是 Strings 的项。相反,应该使用 setProperty 方法。如果在“有危险”的 Properties 对象(即包含非 String 的键或值)上调用 store 或 save 方法,则该调用将失败。那好,下面我们就来看看修改、添加和保存属性的程序:

//修改baseFilePath的属性值

prop.setProperty("baseFilePath", "Boxcode");

//添加一个新的属性studio

prop.setProperty("studio", "Boxcode Studio");

//文件输出流

FileOutputStream fos = new FileOutputStream("prop.properties");

//将Properties集合保存到流中

prop.store(fos, "Copyright (c) Boxcode Studio");

fos.close();//关闭流

在我们知道如何读写一个属性文件之后,我们仍然还有很多需要注意的问题,因为load和store方法都是按照ISO-8859-1的编码方式读写属性流文件的,而ILatin1 的字符和某些特殊字符,而对于非Latin1 的字符和某些特殊字符,则要使用与字符和字符串字面值所用的类似转义序列,以值和元素的形式来表示它们。所以当我们在处理中文时,不可以在直接修改属性文件时,将中文的值赋予给属性,而是要在JAVA程序中通过setProperty方法给属性赋予中文的值,因为这样store会将中文转换成 unicode码,在读取时系统会将读取到的unicode码按系统的编码打印出来,对于中文系统,通常是GBK码,这样中文才能够正常显示。

具体在项目中的属性文件读写

package TestPropertis;

//import java.io.FileInputStream;

//import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

//import java.net.URL;

import java.util.Properties;

/**

* TODO

* @author admin

* @date 2012-11-22 下午05:17:28

*/

public class ReadWirtePropertis {

public static void main(String[] args) {

Properties pro = new Properties();//属性集合对象

//URL url = Thread.currentThread().getContextClassLoader().getResource("prop.properties");//获取项目中文件的路径

InputStream path =Thread.currentThread().getContextClassLoader().getResourceAsStream("prop.properties");//获取路径并转换成流

//try {

//FileInputStream fis = new FileInputStream("属性文件创建在电脑上");

try {

//pro.load(fis);//将属性文件流装载到Properties对象中

pro.load(path);

//fis.close();

System.out.println(pro.getProperty("baseFilePath"));

pro.setProperty("shuzi", "1111");//往属性文件插值

pro.setProperty("shuzi", "222");//更改属性值

System.out.println(pro.getProperty("shuzi"));

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//} catch (FileNotFoundException e) {

TODO Auto-generated catch block

//e.printStackTrace();

//}

}

}

java 写文件 属性吗_使用JAVA读写Properties属性文件相关推荐

  1. java 写的星际争霸_用java写星际争霸的ai

    一直有这个想法很久了.以前也知道可以用BWAPI这个API写星际争霸的ai.但是直接用那个的话一直没调试好,各种版本都搭配不好然后导致星际崩溃,C++又不是很懂只得作罢. 幸好最近发现了这个网站:ht ...

  2. java写一个登录系统_用java写一个用户登陆界面

    一.课堂测试源代码及其结果截图 用java的swing写一个用户登录界面,采用网格布局.源代码如下: /** * */ package LiuLijia; import java.awt.CardLa ...

  3. 用java写一个折半查找_用Java写一个折半查找。

    import java.util.Comparator; public class MyUtil { public static > int binarySearch(T[] x, T key) ...

  4. java写的网络版斗地主_用java实现斗地主

    忙里偷闲,自己运用初学的知识是心啊斗地主功能. 斗地主画图分析 直接上源代码 import java.util.*; public class PlayCards { public static vo ...

  5. java写日历记事本系统_用Java实现日历记事本源代码2660【新版】

    保存日志.addActionListener(this); 删除日志.addActionListener(this); setLayout(new BorderLayout()); JPanel pS ...

  6. java 多个类共用属性_java中读写Properties属性文件公用方法详解

    前言 大家都知道Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改 ...

  7. 用JAVA写一个画图小程序(JAVA 大作业)

    第一次写博客 且是稍微大点的程序 看看就行 重新写的在这,更加清晰明了:点击进入:用JAVA写一个画图小程序(JAVA 大作业)重排版本 设计思路 首先我直接去了Windows自带画图程序去实践模拟, ...

  8. 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目

    王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...

  9. java文件客户端下载_使用Java写一个minio的客户端上传下载文件

    标签:color   ati   tty   java   system   wired   format   media   param 前言: 确保已经安装了minio的服务端 代码: pom.x ...

最新文章

  1. 为什么你老是讲不清楚js的继承模式
  2. ul li列表元素浮动导致border没有底边解决办法
  3. 一行Java代码实现获取上传文件的后缀名
  4. 一步步创建ABAP post exit增强
  5. 第一百零九期:双十一光棍节调试一个商城必备功能,Java Springboot开源秒杀系统
  6. c++查询当前文件夹下文件数目_python3自动化小工具--删除某个文件夹xx后缀文件...
  7. linux shell学习四
  8. linux mysql 5.7密码忘记_Mysql5.7.14 linux版密码忘记的找回方法
  9. 全美首个AI本科专业今秋开课,CMU每年最多招35名新生
  10. 网站操作系统HttpOS2.2安装图解教程
  11. Linux使echo命令输出结果带颜色
  12. 推荐一些经典的编程从入门到进阶的书籍-附下载资源
  13. win98 支持html5,win98 ghost ghost在WIN98怎么使用
  14. 博弈论基础知识--非合作博弈,零和博弈,负和博弈,主从博弈,Nash均衡
  15. 《Gradle实战》如何配置利用Maven本地仓库
  16. 静态路由的配置(以华为eNSP为例)
  17. matlab中pwm占空比计算代码,如何计算pwm波占空比
  18. Python对话框使用
  19. 关于Word文档忘记保护密码的强制解除办法
  20. [MRCTF2020]你传你马呢

热门文章

  1. mysql 5.7.21-linux_MySQL 5.7.21 Linux平台安装 Part 2
  2. mysql部门人员排序设计_MySQL数据库访问性能优化
  3. Linux vim编写编译运行一个.c文件(centeos 8 HelloWorld.c)
  4. IDEA快捷键的使用成就手速之旅(要想手速变得快,快捷练习必须刚)
  5. java自定义菜单跳转页面_微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解...
  6. win32mysql数据库回复_windows mysql 数据库备份与还原方法
  7. java开发cgi_編寫CGI小結(Java)
  8. OpenGL版本与OpenGL扩展机制
  9. Ubuntu apt-get 卸载命令
  10. Linux Kbuild文档 2