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 }
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
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 }