操作properties文件

来源:互联网 发布:视频服务器软件有哪些 编辑:程序博客网 时间:2024/05/16 17:15

本操作读取原件,覆盖到原件,并且顺序反过来。可以根据需要自己改。

一、jar包:不需要,用的是io和util

二、文件位置:Javaweb项目下的src/config文件夹下,内容如下

email1=123@qq.com
email2=456@qq.com
email3=789@qq.com
email4=101@qq.com

三、代码:


import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;

public class PropertyTest {
String path=System.getProperty("user.dir") + "\\src\\config\\email.properties";
public static void main(String[] args) {
new PropertyTest().manyRW();
}

public void manyRW() {
List<String> emailList = new PropertyTest().readFile();
new PropertyTest().writeFile(emailList);
new PropertyTest().readFile();
}

public List<String> readFile() {
Properties prop = new Properties();
List<String> emailList = new ArrayList<>();
try {
// 读取属性文件a.properties
InputStream in = new BufferedInputStream(
new FileInputStream(path));
prop.load(in); /// 加载属性列表
Iterator<String> it = prop.stringPropertyNames().iterator();
while (it.hasNext()) {
String key = it.next();
String message = key + "=" + prop.getProperty(key);
System.out.println(message);
emailList.add(message);
}
in.close();
} catch (Exception e) {
System.out.println(e);
}
return emailList;
}

public String writeFile(List<String> emailList) {
Properties prop = new Properties();
try{
FileOutputStream oFile = new FileOutputStream(path, false);// true表示追加,false表示覆盖
for (String emailKV : emailList) {
String[] email = emailKV.split("=");
String value=emailKV.substring(email[0].length()+1);
System.out.println(value);
prop.setProperty(email[0], String.valueOf(value));//properties 中的Key、Value。不允许有等号"=",否则输出文件会自动加斜杠
}
prop.store(oFile, null);
oFile.close();
} catch (Exception e) {
System.out.println(e);
}
return path;
}
}

原创粉丝点击