java 写文件 属性吗_使用JAVA读写Properties属性文件
自己定义一个属性文件:例如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属性文件相关推荐
- java 写的星际争霸_用java写星际争霸的ai
一直有这个想法很久了.以前也知道可以用BWAPI这个API写星际争霸的ai.但是直接用那个的话一直没调试好,各种版本都搭配不好然后导致星际崩溃,C++又不是很懂只得作罢. 幸好最近发现了这个网站:ht ...
- java写一个登录系统_用java写一个用户登陆界面
一.课堂测试源代码及其结果截图 用java的swing写一个用户登录界面,采用网格布局.源代码如下: /** * */ package LiuLijia; import java.awt.CardLa ...
- 用java写一个折半查找_用Java写一个折半查找。
import java.util.Comparator; public class MyUtil { public static > int binarySearch(T[] x, T key) ...
- java写的网络版斗地主_用java实现斗地主
忙里偷闲,自己运用初学的知识是心啊斗地主功能. 斗地主画图分析 直接上源代码 import java.util.*; public class PlayCards { public static vo ...
- java写日历记事本系统_用Java实现日历记事本源代码2660【新版】
保存日志.addActionListener(this); 删除日志.addActionListener(this); setLayout(new BorderLayout()); JPanel pS ...
- java 多个类共用属性_java中读写Properties属性文件公用方法详解
前言 大家都知道Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改 ...
- 用JAVA写一个画图小程序(JAVA 大作业)
第一次写博客 且是稍微大点的程序 看看就行 重新写的在这,更加清晰明了:点击进入:用JAVA写一个画图小程序(JAVA 大作业)重排版本 设计思路 首先我直接去了Windows自带画图程序去实践模拟, ...
- 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目
王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...
- java文件客户端下载_使用Java写一个minio的客户端上传下载文件
标签:color ati tty java system wired format media param 前言: 确保已经安装了minio的服务端 代码: pom.x ...
最新文章
- 为什么你老是讲不清楚js的继承模式
- ul li列表元素浮动导致border没有底边解决办法
- 一行Java代码实现获取上传文件的后缀名
- 一步步创建ABAP post exit增强
- 第一百零九期:双十一光棍节调试一个商城必备功能,Java Springboot开源秒杀系统
- c++查询当前文件夹下文件数目_python3自动化小工具--删除某个文件夹xx后缀文件...
- linux shell学习四
- linux mysql 5.7密码忘记_Mysql5.7.14 linux版密码忘记的找回方法
- 全美首个AI本科专业今秋开课,CMU每年最多招35名新生
- 网站操作系统HttpOS2.2安装图解教程
- Linux使echo命令输出结果带颜色
- 推荐一些经典的编程从入门到进阶的书籍-附下载资源
- win98 支持html5,win98 ghost ghost在WIN98怎么使用
- 博弈论基础知识--非合作博弈,零和博弈,负和博弈,主从博弈,Nash均衡
- 《Gradle实战》如何配置利用Maven本地仓库
- 静态路由的配置(以华为eNSP为例)
- matlab中pwm占空比计算代码,如何计算pwm波占空比
- Python对话框使用
- 关于Word文档忘记保护密码的强制解除办法
- [MRCTF2020]你传你马呢
热门文章
- mysql 5.7.21-linux_MySQL 5.7.21 Linux平台安装 Part 2
- mysql部门人员排序设计_MySQL数据库访问性能优化
- Linux vim编写编译运行一个.c文件(centeos 8 HelloWorld.c)
- IDEA快捷键的使用成就手速之旅(要想手速变得快,快捷练习必须刚)
- java自定义菜单跳转页面_微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解...
- win32mysql数据库回复_windows mysql 数据库备份与还原方法
- java开发cgi_編寫CGI小結(Java)
- OpenGL版本与OpenGL扩展机制
- Ubuntu apt-get 卸载命令
- Linux Kbuild文档 2