標籤:except 屬性 進位 文本 記錄 oid files nts finally
1.流
a.分類:①位元組流:InputStream、OutputStream
②字元流:Reader、Writer
b.選擇:①判斷是 輸入 還是 輸出 (站在程式的立場上)
②判斷是 位元組 還是 字元 (決定粗細)
c.注意:①位元組管道是最根本的
②字元管道專門傳輸文本資料
c.應用:①序列化
②還原序列化
2.檔案拷貝——最重要的一段手工書寫的代碼
package com.lovo.test;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;public class TestStream { public static void main(String[] args) { //功能:將D:/test.avi 拷貝到 F:/wudi.avi FileInputStream fis = null; FileOutputStream fos = null; try { //1、建立管道 fis = new FileInputStream("D:/test.avi"); fos = new FileOutputStream("F:/wudi.avi"); //2、操作管道 //方法一:// int b = 0;// while((b = fis.read()) != -1){// fos.write(b);// } //方法二: byte[] b = new byte[1024]; int length = 0;//記錄讀取了多少個有效位元組數 while((length = fis.read(b)) != -1){ fos.write(b,0,length); fos.flush();//強制刷出緩衝區的內容 } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ //3、關閉管道 if(fis != null){ try { fis.close(); } catch (IOException e) { // TODO Auto-generated block e.printStackTrace(); } } if(fos != null){ try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }}
3.序列化與還原序列化
a.定義:①序列化:將記憶體中的對象以二進位流的形式輸出
②還原序列化:將輸入的二進位物件流程轉換為記憶體中的對象 (第二種產生對象的方式)
b.Serializable關鍵字:
①定義:可序列化介面
②作用:標記性介面,只有實現了Serializable介面的類才能被序列化
③注意:集合對象都實現了介面Serializable,也可以進行直接進行序列化和還原序列化
c.transient關鍵字:
transient關鍵字修飾的屬性,其值不參與序列化
4.File 類
a.作用:來表示作業系統的檔案或檔案夾對象
b.方法:
①申明:
File f = new File("F:/dddd.data");
②其他:
String path1 = file.getAbsolutePath(); //擷取絕對路徑String path2 = file.getPath(); //擷取相對路徑long space = file.length(); //擷取檔案大小long time = file.lastModified(); //最後修改時間(毫秒數) System.out.println(file.isHidden()); //判斷是否是隱藏檔案System.out.println(file.canWrite()); //判斷是否是能被修改System.out.println(dir.isFile()); //判斷是否是檔案System.out.println(file.isDirectory()); //判斷是否是檔案夾
c.檔案分隔字元——File.pathSeparator
String path = "D:" + File.pathSeparator +"ffdfd" + File.pathSeparator + "fdfdf";
d.檔案夾對象的常用方法:
①得到檔案夾下面的所有子檔案或子檔案夾的名字
String[] subFileNames = dir.list();
②得到檔案夾下面的所有子檔案或子檔案夾的File對象
File[] subFiles = dir.listFiles();
Java 之 I/O流