1. package FileDemo;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.File;
  5. import java.io.FileOutputStream;
  6. import java.io.FileReader;
  7. import java.io.FileWriter;
  8. import java.io.IOException;
  9. import java.util.Properties;
  10.  
  11. public class PropertiesFunctions {
  12.  
  13. /**
  14. * @param args
  15. * @throws IOException
  16. */
  17. public static void main(String[] args) throws IOException {
  18.  
  19. /*
  20. * Map |--Hashtable |--Properties:
  21. *
  22. * Properties集合: 特点: 1,该集合中的键和值都是字符串类型。 2,集合中的数据可以保存到流中,或者从流获取。
  23. *
  24. * 通常该集合用于操作以键值对形式存在的配置文件。
  25. */
  26. test();
  27. myLoad();
  28. method_1();
  29. method_2();
  30.  
  31. }
  32.  
  33. private static void method_2() {//Property集合的简单使用
  34. Properties prop=new Properties();
  35. prop=System.getProperties();
  36. prop.list(System.out);
  37. }
  38.  
  39. private static void method_1() throws IOException {// Store方法演示
  40. Properties prop = new Properties();
  41. prop.setProperty("wangwu", "12");
  42. prop.setProperty("ciugwu", "25");
  43. prop.setProperty("zhangsan", "32");
  44. prop.setProperty("liuxiao", "36");
  45. FileOutputStream fos = new FileOutputStream("D:\\info1.txt");
  46. prop.store(fos, "info");
  47. fos.close();
  48. }
  49.  
  50. private static void myLoad() throws IOException {// 模拟Property集合的load方法
  51. Properties prop = new Properties();
  52. BufferedReader bufr = new BufferedReader(new FileReader("D:\\info.txt"));
  53. String line = null;
  54. while ((line = bufr.readLine()) != null) {
  55. if (line.startsWith("#")) {
  56. continue;
  57. }
  58. String arr[] = line.split("=");
  59. prop.setProperty(arr[0], arr[1]);
  60. }
  61. prop.list(System.out);
  62. bufr.close();
  63. }
  64.  
  65. private static void test() throws IOException {
  66. // 对已有的配置文件中的信息进行修改。
  67. /*
  68. * 读取这个文件。 并将这个文件中的键值数据存储到集合中。 在通过集合对数据进行修改。 在通过流将修改后的数据存储到文件中。
  69. */
  70. File file = new File("D:\\info.txt");
  71. if (!file.exists()) {
  72. file.createNewFile();
  73. }
  74. FileReader fr = new FileReader(file);
  75. // 创建集合存储配置信息
  76. Properties prop = new Properties();
  77. prop.load(fr);
  78. prop.setProperty("wangwu", "16");
  79. FileWriter fw = new FileWriter(file);
  80. prop.store(fw, "");
  81. prop.list(System.out);
  82. fw.close();
  83. fr.close();
  84. }
  85.  
  86. }

Java持久化存储对象Properties的方法list、store、load的更多相关文章

  1. 第五课 JAVA反射获取对象属性和方法(通过配置文件)

    Service1.java package reflection; public class Service1 { public void doService1(){ System.out.print ...

  2. java中String对象的split方法

    在java.lang包中有String.split()方法,返回是一个String[]数组,今天碰到一个自己没注意的问题: 1.特殊分隔符 String str1 = "123|456|78 ...

  3. java类与对象(属性,方法)的使用

    ---恢复内容开始--- 类和对象是java编程中很重要的应该面向对象的一课,实际上可以将类看作对象的载体,它定义了对象所具有的功能.Java是面向对象的语言,因此掌握类与对象是学习Java语言的基础 ...

  4. 第五课 JAVA反射获取对象属性和方法

    package com.hero; import java.lang.reflect.Field; public class TestReflction5 { public static void m ...

  5. java中初始化对象变量的方法

    1.在类定义对象的地方初始化 2.在类构造器中初始化 3.在正要使用这些对象之前,惰性初始化,或者叫惰性载入 4.使用实例初始化    在方法里使用初始化

  6. scrapy 框架持久化存储的三个方法 存入 mysql 文件 redis

    这里就不做详细讲解了 毕竟不是一句两句能说的清楚,所以我把代码和注释放到了这里 谢谢! import pymysql from redis import Redis # 写入mysql class W ...

  7. java 集合存储对象且根据对象属性排序

    方法一:根据java1.8lambda表达式进行排序 Comparator<RateInfo> comparator = (t1, t2) -> t1.getRateCode().c ...

  8. Java之所有对象的公用方法>10.Always override toString

    providing a good toString implementation makes your class much more pleasant to use. It is recommend ...

  9. Java之所有对象的公用方法>9.Always override hashCode when you override equals

     You must override hashCode in every class that overrides equals.

随机推荐

  1. hdu 4652 Dice 概率DP

    思路: dp[i]表示当前在已经投掷出i个不相同/相同这个状态时期望还需要投掷多少次 对于第一种情况有: dp[0] = 1+dp[1] dp[1] = 1+((m-1)*dp[1]+dp[2])/m ...

  2. Tomcat Java内存溢出 PermGen space 解决方案

    -Xms300m -Xmx400m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256M

  3. utf-8转换为ansi和修改文件名的批处理(可解决source insight中文注释乱码问题)

    source insight中文乱码有两个原因,一个是source insight的设置不正确.另外一个原因是源文件是utf-8格式的. 最近在工作中用source insight 查看jsp文件.j ...

  4. Qt之显示网络图片(可以改成升级模块)

    http://blog.csdn.net/u011012932/article/details/50773382

  5. QT UAC问题汇总贴

    http://www.qtcn.org/bbs/read-htm-tid-47983.html http://www.cnblogs.com/bombless/archive/2010/12/29/h ...

  6. VC中支持中文的字符串比较函数

    VS2008开发环境,多字符集和UNICODE字符集都可用. WCHAR * mbcsToUnicode(const char *zStr) { int nByte; WCHAR *zMbcsStr; ...

  7. Android在java代码中设置margin

    我们平常可以直接在xml里设置margin,如: <ImageView android:layout_margin="5dip" android:src="@dra ...

  8. 编程之美:1.9高效率安排见面会 图的m着色问题 回溯法

    原书问题,可以转换为图的m着色问题 ,下面该问题的代码 这里有参考ppt与code,免积分载 http://download.csdn.net/detail/u011467621/6341195 // ...

  9. 1521. War Games 2(线段树解约瑟夫)

    1521 根据区间和 来确定第k个数在哪 #include <iostream> #include<cstdio> #include<cstring> #inclu ...

  10. memcpy与memmove区别

    头文件:#include <string.h> memmove() 用来复制内存内容,其原型为:    void * memmove(void *dest, const void *src ...