Java对properties配置文件的操作

该博客主要介绍了Java对properties配置文件的操作。通过定义PropertiesUnit类,实现了读取、获取值、设置值、保存文件和删除值等功能,同时处理了可能出现的文件未找到和读取错误等异常情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java对properties配置文件的操作

/*
 * Created on 2005-1-4
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.yorsun;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;

/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public class PropertiesUnit {
 private String filename;

 private Properties p;

 private FileInputStream in;

 private FileOutputStream out;

 public PropertiesUnit(String filename) {
  this.filename = filename;
  File file = new File(filename);
  try {
   in = new FileInputStream(file);
   p = new Properties();
   p.load(in);
   in.close();
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   System.err.println("配置文件config.properties找不到!");
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   System.err.println("读取配置文件config.properties错误!");
   e.printStackTrace();
  }
 }

 public static String getConfigFile(HttpServlet hs) {
  return getConfigFile(hs, "config.properties");
 }

 /**
  * @param hs
  * @param configFileName
  * @return configFile
  */
 private static String getConfigFile(HttpServlet hs, String configFileName) {
  String configFile = "";
  ServletContext sc = hs.getServletContext();
  configFile = sc.getRealPath("/" + configFileName);
  if (configFile == null || configFile.equals("")) {
   configFile = "/" + configFileName;
  }
  // TODO Auto-generated method stub
  return configFile;
 }

 public void list() {
  p.list(System.out);
 }

 public String getValue(String itemName) {
  return p.getProperty(itemName);
 }

 public String getValue(String itemName, String defaultValue) {
  return p.getProperty(itemName, defaultValue);
 }

 public void setValue(String itemName, String value) {
  p.setProperty(itemName, value);
 }

 public void saveFile(String filename, String description) throws Exception {
  try {
   File f = new File(filename);
   out = new FileOutputStream(f);
   p.store(out, description);
   out.close();
  } catch (IOException ex) {
   throw new Exception("无法保存指定的配置文件:" + filename);
  }
 }
 
 public void saveFile(String filename) throws Exception{
  saveFile(filename,"");
 }
 
 public void saveFile() throws Exception{
  if(filename.length()==0)
   throw new Exception("需指定保存的配置文件名");
  saveFile(filename);
 }
 
 public void deleteValue(String value){
  p.remove(value);
 }
 
 public static void main(String args[]){
  String file="/eclipse/workspace/NewsTest/WEB-INF/config.properties";
//  String file="D://eclipse//workspace//NewsTest//WEB-INF//config.properties";
  PropertiesUnit pu=new PropertiesUnit(file);
  pu.list();
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值