Properties類至Commons-IO

Properties類java

特色:mysql

一、Hashtable的子類,map集合中的方法均可以用;sql

二、該集合沒有泛型,鍵值都是字符串;ide

三、是一個能夠持久化的屬性集,鍵值能夠存到集合中,也可存到持久化的設備上,鍵值的來源也但是持久化的設備;this

四、有和流技術相結合的方法:spa

代碼演示:code

 

 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:反序列化流blog

寫入對象的操做流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 }
相關文章
相關標籤/搜索