Java 之 I/O流

來源:互聯網
上載者:User

標籤: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流

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.