集合中的数据来自于一个文件
注意:必须要保证该文件中的数据是键值对。
需要使用到读取流
使用load()方法读取已有文件中的数据,存储到Properties集合中
1 public class PropertiesDemo { 2 public static void main(String[] args) throws IOException { 3 PropertiesDemo(); 4 } 5 public static void PropertiesDemo() throws IOException { 6 Properties prop = new Properties(); 7 8 FileInputStream fr = new FileInputStream("F:\\info.java"); 9 10 prop.load(fr); 11 12 prop.list(System.out); 13 14 } 15 }
对已有的配置文件中的信息进行修改
1.读取这个文件
2.并将这个文件的键值数据存储到集合中
3.再通过集合对数据进行修改
4.再通过流将修改后的数据存储到文件中
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Properties; public class PropertiesDemo { public static void main(String[] args) throws IOException { test(); } public static void test() throws IOException{ //读取这个文件,文件可能不存在,所以先将文件封装成对象进行判断的文件是否存在,如果不存在可以抛异常或者创建一个,具体看需求 File file = new File("F:\\info.java"); if(!file.exists()){ file.createNewFile(); } FileInputStream fr = new FileInputStream(file); //创建集合存储配置信息 Properties prop = new Properties(); //将流中的信息存储到集合中 prop.load(fr); //修改配置信息 prop.setProperty("04", "huangjianfengqingads"); //保存 FileWriter fw = new FileWriter(file); prop.store(fw, ""); prop.list(System.out); fw.close(); fr.close(); } }
模拟Load()方法:
1 import java.io.BufferedReader; 2 import java.io.FileReader; 3 import java.io.IOException; 4 import java.util.Properties; 5 6 public class PropertiesDemo { 7 public static void main(String[] args) throws IOException { 8 myLoad(); 9 } 10 //模拟load方法 11 public static void myLoad() throws IOException { 12 Properties prop = new Properties(); 13 BufferedReader buf = new BufferedReader(new FileReader("F:\\info.txt")); 14 String line = null; 15 while((line = buf.readLine())!=null){ 16 if(line.startsWith("#")){ 17 continue; 18 } 19 String[] arr = line.split("="); 20 //System.out.println(arr[0]+"::"+arr[1]); 21 prop.setProperty(arr[0], arr[1]); 22 prop.list(System.out); 23 } 24 } 25 26 }
Properties集合_修改配置信息,布布扣,bubuko.com
原文:http://www.cnblogs.com/LO-ME/p/3595491.html