`
yianpuodiaotu
  • 浏览: 240280 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Properties文件的读写 : Properties操作示例

阅读更多
package properties;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.Properties;

/**
 * Java配置文件Properties类的的读、写及更新操作
 */
public class SetSystemProperty {

	// 属性文件的路径
	static String profilepath = "mail.properties";

	/**
	 * 采用静态方法
	 */
	private static Properties props = new Properties();

	static {
		try {
			props.load(new FileInputStream(profilepath));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.exit(-1);
		} catch (IOException e) {
			System.exit(-1);
		}
	}

	/**
	 * 读取属性文件中相应键的值
	 * 
	 * @param key
	 *            主键
	 * @return String
	 */
	public static String getKeyValue(String key) {
		return props.getProperty(key);
	}

	/**
	 * 根据主键key读取主键的值value
	 * 
	 * @param filePath
	 *            属性文件路径 </p> 
	 *            在工程中取得相对路径的方法 :this.getClass().getResource("工程路径").getPath();
	 * @param key
	 *            键名
	 */
	public static String readValue(String filePath, String key) {
		Properties props = new Properties();
		try {
			InputStream in = new BufferedInputStream(new FileInputStream(
					filePath));
			props.load(in);
			String value = props.getProperty(key);
			System.out.println(key + "键的值是:" + value);
			return value;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	/**
	 * 更新(或插入)一对properties信息(主键及其键值) 
	 * <br>如果该主键已经存在,更新该主键的值;</br> 
	 * <br>如果该主键不存在,则插件一对键值。</br>
	 * 
	 * @param keyname
	 *            键名
	 * @param keyvalue
	 *            键值
	 */
	public static void writeProperties(String keyname, String keyvalue) {
		try {
			OutputStream fos = new FileOutputStream(profilepath);
			props.setProperty(keyname, keyvalue);
			// 以适合使用 load 方法加载到 Properties 表中的格式,
			// 将此 Properties 表中的属性列表(键和元素对)写入输出流
			props.store(fos, "Update '" + keyname + "' value");
		} catch (IOException e) {
			System.err.println("属性文件更新错误");
		}
	}

	/**
	 * 更新properties文件的键值对 
	 * <br>如果该主键已经存在,更新该主键的值;</br>
	 * <br>如果该主键不存在,则插件一对键值。</br>
	 * 
	 * @param keyname
	 *            键名
	 * @param keyvalue
	 *            键值
	 */
	public void updateProperties(String keyname, String keyvalue) {
		try {
			props.load(new FileInputStream(profilepath));
			OutputStream fos = new FileOutputStream(profilepath);
			props.setProperty(keyname, keyvalue);
			// 以适合使用 load 方法加载到 Properties 表中的格式,
			// 将此 Properties 表中的属性列表(键和元素对)写入输出流
			props.store(fos, "Update '" + keyname + "' value");
		} catch (IOException e) {
			System.err.println("属性文件更新错误");
		}
	}

	/**
	 * 读取properties的全部信息
	 * 
	 * @param filePath
	 *            文件的路径
	 */
	public static void readProperties(String filePath) {
		Properties props = new Properties();
		InputStream in = null;
		try {
			in = new BufferedInputStream(new FileInputStream(filePath));
			props.load(in);
			Enumeration en = props.propertyNames();
			while (en.hasMoreElements()) {
				String key = (String) en.nextElement();
				String property = props.getProperty(key);
				System.out.println(key + " : " + property);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				in.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	// 测试代码
	public static void main(String[] args) {
		readValue("mail.properties", "MAIL_SERVER_PASSWORD");
		writeProperties("MAIL_SERVER_INCOMING", "327@qq.com");
		System.out.println("操作完成");
	}
}

 

分享到:
评论

相关推荐

    c#操作properties,读写配置文件

    ### C#操作Properties,读写配置文件 在C#编程中,经常需要处理应用程序的配置信息,例如数据库连接字符串、用户界面的语言设置等。这些配置信息通常存储在配置文件中,便于程序运行时动态加载和修改。C#提供了一种...

    Properties文件读写;Property文件读写;Property

    在Java编程语言中,Properties文件是一种常见的存储配置信息的方式,它们通常用于保存应用程序的设置、数据库连接字符串等数据。...开发人员可以导入这个库,快速集成Properties文件的读写功能,从而提升开发效率。

    Python实现读取Properties配置文件的方法

    下面是一个简单的`.properties`文件示例: ``` database.url=jdbc:mysql://localhost:3306/mydb database.username=root database.password= ``` 为了在Python中读取这样的文件,我们可以创建一个名为`Properties`...

    java读写properties配置文件

    ### Java读写Properties配置文件详解 #### 一、引言 在Java开发中,`Properties`类被广泛用于处理各种类型的配置文件。这些文件通常包含了应用程序运行时所需的配置信息,如数据库连接信息、系统参数等。`...

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    总结一下,处理Java中的Properties文件读写时,需要注意文件路径的准确性、文件的读写权限以及缓存问题。通过以上方法,应该能够有效解决描述中提到的问题。对于提供的"新建文本文档.txt",虽然不是Properties文件,...

    Java代码实现对properties文件有序的读写的示例

    然而,在读写Properties文件时,需要注意元素的顺序,因为Properties继承自HashTable,直接通过keySet()、keys()或entrySet()方法对Properties中的元素进行遍历时取出来的内容顺序与properties文件中的顺序不一致。...

    Properties和xml读写操作

    根据给定文件的信息,我们可以总结出关于 Java 中 Properties 和 XML 的读写操作的相关知识点。 ### 一、Properties 文件的读写操作 #### 1. 读取 Properties 文件 在 Java 中,`Properties` 类用于处理属性文件...

    写入properties文件时间并且读出时间

    本示例着重介绍如何将时间写入`properties`文件并读取出来。 首先,我们需要了解`java.util.Properties`类,它是Java标准库中处理`properties`文件的核心类。它提供了加载、存储、设置和获取属性的方法。下面将详细...

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    在写入Properties文件时,确保使用了`Properties.store()`方法,并在操作完成后关闭流: ```java OutputStream out = new FileOutputStream("config.properties"); prop.setProperty("key", "new value"); prop....

    Java源码读写Properties文件.rar

    这个压缩包“Java源码读写Properties文件.rar”包含了一份关于如何使用Java来读取和写入Properties文件的源代码示例。下面我们将详细探讨这个主题。 首先,Properties类是Java的标准库类,位于`java.util`包下,它...

    java 改变Properties文件中的键值

    在Java代码中,首先需要导入`java.util.Properties`和`java.io.*`等相关的类库,以便进行读写Properties文件的操作。 2. **加载Properties文件** 使用`Properties`类的`load()`方法加载Properties文件。这个方法...

    java读取properties配置文件

    在Java中,我们可以使用`java.util.Properties`类来加载和操作这类文件。以下是读取`properties`文件的基本步骤: 1. 加载`properties`文件: - 创建`Properties`对象实例:`Properties prop = new Properties();`...

    java读取properties文件

    这个类提供了一种存储和加载属性列表的方法,它能够处理`.properties`文件的读写操作。 1. 加载`properties`文件: 要读取`properties`文件,我们首先需要创建一个`Properties`对象,然后使用`load()`方法从输入流...

    读取properties文件工具类

    这个"读取properties文件工具类"是为了简化程序中对`.properties`文件的读取操作而设计的。通过这样的工具类,开发者可以方便地加载和获取配置文件中的属性值,避免重复编写相同的代码。下面我们将详细探讨`...

    java对properties文件的操作

    - 文件路径问题:在读写Properties文件时,确保提供正确的相对或绝对路径。 - 编码问题:Properties文件默认使用ISO-8859-1编码,如果包含非ASCII字符,需要使用`load(new InputStreamReader(inputStream, "UTF-8...

    java操作properties方法

    在示例代码中,`PropertiesTest`类展示了如何读取和写入不同类型的文件,包括`.properties`、`.xml`和`.txt`文件。通过`FileInputStream`和`FileOutputStream`创建文件输入/输出流,然后使用`Properties`类的方法...

    解析properties文件demo

    本示例"解析properties文件demo"将深入讲解如何在Java程序中读取和操作这些文件。 1. **properties文件格式** `properties`文件以键值对的形式存储数据,每行一个键值对,键和值之间用等号(`=`)或冒号(`:`)...

    Java读写.properties文件解决中文乱码问题

    本篇文章将深入探讨如何解决Java读写.properties文件时的中文乱码问题。 首先,了解.properties文件的特性。这种文件的默认编码通常是ISO-8859-1,它不支持中文字符。因此,当文件中含有中文时,必须明确指定读写时...

    properties文件的读取

    **读写`properties`文件的函数示例:** 以下是一个简单的读取和保存`properties`文件的函数: ```java import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Properties; public ...

    java Properties文件key,value读取

    读取Properties文件是Java开发中的基础操作,下面我们将详细探讨如何在Java中读取Properties文件的内容。 首先,我们需要引入`java.util.Properties`类,这是Java提供用来处理Properties文件的核心类。以下是一个...

Global site tag (gtag.js) - Google Analytics