zoukankan      html  css  js  c++  java
  • Properties类至Commons-IO

    Properties类

    特点:

    1、Hashtable的子类,map集合中的方法都可以用;

    2、该集合没有泛型,键值都是字符串;

    3、是一个可以持久化的属性集,键值可以存到集合中,也可存到持久化的设备上,键值的来源也可是持久化的设备;

    4、有和流技术相结合的方法:

    代码演示:

     1     public static void main(String[] args) {
     2         Properties pro=new Properties();
     3         //存数据
     4         pro.setProperty("driver", "com.mysql.jdbc.driver");
     5         pro.setProperty("username", "root");
     6         pro.setProperty("password", "123456");
     7         //取数据
     8         //获取键集
     9         Set<String> set= pro.stringPropertyNames();
    10         for(String s:set){
    11             System.out.println(s+"..."+pro.getProperty(s));
    12         }
    13     }
    14 
    15 
    16 public class Demo02 {
    17     public static void main(String[] args) throws IOException {
    18         //从properties文件中读取键值对
    19         Properties pro=new Properties();
    20         FileInputStream fis=new FileInputStream("x:\test\demo1.properties");
    21         pro.load(fis);
    22         fis.close();
    23         Set<String> set=pro.stringPropertyNames();
    24         //遍历
    25         for(String s:set){
    26             System.out.println(s+"..."+pro.getProperty(s));
    27         }
    28     }
    29 
    30 
    31     public static void main(String[] args) throws IOException {
    32         //通过properties向文件中写键值对
    33         //明确目的地
    34         FileOutputStream fos=new FileOutputStream("x:\test\demo2.properties");
    35         Properties pro=new Properties();
    36         pro.setProperty("name", "xuezhiqian");
    37         pro.setProperty("age", "34");
    38         pro.store(fos, "");
    39     }

    序列化流与饭序列化流:

    读取对象的操作流ObjectInputStream:反序列化流

    写入对象的操作流ObjectOutputStream:序列化流

    特点:用于操作对象,可将对象写入到文件中,也可从文件中读取对象

    代码演示:

     1 //序列化
     2 public class Demo01 {
     3     public static void main(String[] args) throws IOException {
     4         Person p=new Person("张三",18);
     5         //明确目的地
     6         FileOutputStream fos=new FileOutputStream("x:\test\person.txt");
     7         //创建序列化流
     8         ObjectOutputStream oos=new ObjectOutputStream(fos);
     9         //写入对象
    10         oos.writeObject(p);
    11         //释放资源
    12         oos.close();
    13     }
    瞬态关键字 transient
    1
    public class Person implements Serializable{ 2 private String name; 3 private transient int age;//瞬态关键字 4 private static final long serialVersionUID=123456789L; 5 public Person(String name, int age) { 6 super(); 7 this.name = name; 8 this.age = age; 9 } 10 public String getName() { 11 return name; 12 } 13 public void setName(String name) { 14 this.name = name; 15 } 16 public int getAge() { 17 return age; 18 } 19 public void setAge(int age) { 20 this.age = age; 21 } 22 @Override 23 public String toString() { 24 return "Person [name=" + name + ", age=" + age + "]"; 25 }
     

    1
    //反序列化 2 public class Demo02 { 3 public static void main(String[] args) throws IOException, ClassNotFoundException { 4 //明确数据源 5 FileInputStream fis=new FileInputStream("x:\test\person.txt"); 6 //创建反序列化对象 7 ObjectInputStream ois=new ObjectInputStream(fis); 8 //反序列化 9 Object obj=ois.readObject(); 10 Person p=(Person)obj; 11 System.out.println(p); 12 13 14 }

    打印流:(怎么写的怎么打印;不会有IOExecption异常)

    字节打印流:PrintStream;

    字符打印流:PrintWriter;

    方法:void print(String str):输出任意类型的数据

      void println(String str):输出任意类型的数据,自动写入换行操作

    代码演示:

     1     public static void main(String[] args) throws IOException {
     2         //打印流复制
     3         //明确数据源
     4         FileReader fr=new FileReader("x:\test\test.txt");
     5         BufferedReader br=new BufferedReader(fr);
     6         //明确数据目的
     7         FileWriter fw=new FileWriter("x:\test\d\pig.txt");
     8         PrintWriter pw=new PrintWriter(fw,true);
     9         //复制
    10         String line=null;
    11         while((line=br.readLine())!=null){
    12             pw.println(line);
    13         }
    14         //释放资源
    15         br.close();
    16         pw.close();
    17     }

    commons-IO:

    导入jar包

    FilenameUtils:用来处理文件

    常用方法:

    getExtension(String path):获取文件的扩展名

    getName():获取文件名

    isExtension(String filename,String ext):判断filename是否是ext后缀名

    FileUtils:

    常用方法:

    readFileToString(File file):读取文件内容,返回一个String

    writeString(File file,String content):将内容写到field中

    copyDirectoryToDirectory(File srcDir,File destDir);文件夹复制

    copyFile(File srcFile,File destFile);文件复制

    代码演示:

     

     1 public class Demo01 {
     2     public static void main(String[] args) throws IOException {
     3         //method1();
     4         method2();
     5     }
     6     public static void method1(){
     7         //获取某文件扩展名
     8         String name=FilenameUtils.getExtension("x:\test");
     9         System.out.println(name);
    10         //获取某文件名
    11         String filename=FilenameUtils.getName("x:\test\test.txt");
    12         System.out.println(filename);
    13         //判断某文件是否以什么为结尾
    14         boolean flag=FilenameUtils.isExtension("aaa.java", "java");
    15         System.out.println(flag);
    16     }
    17     public static void method2() throws IOException{
    18         FileUtils.copyDirectoryToDirectory(new File("x:\test"), new File("c:\"));
    19         
    20     }
    21 
    22 }

     

     

  • 相关阅读:
    sql server 数据库可疑处理方法。
    执行gpedit.msc 提示找不到程序
    uni-app Post springboot 后台接收数据为null 解决办法
    组件接口升级商品编码文件
    mysql 拼接字符
    mysql 截取前7位
    为什么具有编程思维的孩子更容易成功?孩子为什么要学编程?你想要的答案都在这儿!
    利用支持MicroPython的TPYBoard开发板自制PM2.5检测仪(萝卜教育学科式编程)
    Micropython教程实例之USB-HID应用(萝卜学科编程)
    教程Micropython自制小型家庭气象站(萝卜教育)
  • 原文地址:https://www.cnblogs.com/2734156755z/p/9533437.html
Copyright © 2011-2022 走看看