Peoperties类,SequenceInputStream序列流(合并流)、切割合并文件
util包
Peoperties是hashtable的子类。
也就是说它具备了map集合的特点,而且它里面存储的键值对都是字符串。
是集合中和IO技术相结合的集合容器。
该对象的特点,可以用于键值对形式的配置文件。
那么在加载数据时,需要数据有固定格式,通常键=值
public class PropertiesDemo_11 { public static void main(String[] args) throws IOException { //setAndGet(); //method_1(); loadDemo(); } public static void loadDemo() throws IOException { Properties prop = new Properties(); FileInputStream fis = new FileInputStream("info.txt"); //将流中的数据加载进集合。 prop.load(fis); prop.setProperty("wangwu", "39");//改变的是内存的结果,文件没有被改 FileOutputStream fos = new FileOutputStream("info.txt"); prop.store(fos, "haha"); //System.out.println(prop); prop.list(System.out); fis.close(); fos.close(); } //演示,如何将流中的数据存储到集合中 //想要将info.txt中键值数据存到集合中进行操作 /*思路: 1、用一个流和info.txt文件关联 2、读取一行数据,该行数据用“=”进行切割 3、等号左边作为键,右边作为值,存入到Properties集合中即可。 */ public static void method_1() throws IOException { BufferedReader bufr = new BufferedReader(new FileReader("info.txt")); String line = null; Properties prop = new Properties(); while((line=bufr.readLine())!=null) { String[] arr = line.split("="); //System.out.println(arr[0]+"..."+arr[1]); prop.setProperty(arr[0], arr[1]); } bufr.close(); System.out.println(prop); } //设置和获取元素 public static void setAndGet() { Properties prop = new Properties(); prop.setProperty("zhangsan", "30"); prop.setProperty("lisi", "39"); //System.out.println(prop); //String value = prop.getProperty("lisi"); //System.out.println(value); prop.setProperty("wangwu", 88+""); Set<String> name = prop.stringPropertyNames(); for(String s:name) { System.out.println(s+":"+prop.getProperty(s)); } } }
/* 用于记录应用程序运行次数。 如果使用次数已到,那么给出注册提示。 很容易想到的是:计数器。 可是该计数器定义在程序中,随着程序的运行而在内存中存在,并进行了自增。 可是随着该应用程序的退出,该计数器也在内存中消失了。 下一次再启动该程序,又重新开始从0计数。 这样不是我们想要的。 程序即使结束,该计数器的值也存在。 下次程序启动会先加载该计数器的值并加1后再重新存储起来。 所以要建立一个配置文件,用于记录该软件的使用次数。 该配置文件使用键值对的形式, 这样便于阅读数据,并操作数据。 键值对数据是map集合。 数据是以文件形式存储,使用IO技术, 那么map+io-->properties 配置文件可以实现应用程序数据的共享。 */ public class PropertiesTest_14 { //RunCount public static void main(String[] args) throws IOException { Properties prop = new Properties(); File file = new File("count.properties"); if(!file.exists()) file.createNewFile(); FileInputStream fis = new FileInputStream(file); //流中数据加载在集合中 prop.load(fis); int count = 0; String value = prop.getProperty("time"); if(value!=null) { count = Integer.parseInt(value); if(count>=5) { System.out.println("您好,使用次数已到,拿钱!"); return; } } count++; prop.setProperty("time", count+""); FileOutputStream fos = new FileOutputStream(file); prop.store(fos,""); fos.close(); fis.close(); } } /* <persons> <person od="001"> <name>zhangsan</name> <age>30</age> <address>bj</address> </person> <person> <name> </person> </persons> dom4j dom for java four */
欢迎各路侠客多多指教^_^