簡單Java程式向公用程式的過度:二進位檔案的讀寫

來源:互聯網
上載者:User

標籤:程式   font   mini   檔案   nbsp   構造   port   關閉   nal   

File I/O中常見的檔案讀寫:

1.位元組流讀寫文字檔

FileInputStream;

FileOutputStream;

2.字元流讀寫文字檔

FileReader;

FileWriter;

BufferedReader;

BufferedWriter;

3.二進位讀寫檔案

DataInputStream;

DataOutputStream;

這裡重點介紹二進位檔案的讀寫:

一、使用位元組流類DataInputStream讀寫二進位檔案

DataInputStream類是FileInputstream的子類,它是FileInputStream類的擴充。

利用DataInputStream類讀取二進位檔案要使用到FileInputStream類。

具體操作步驟:

1)引入相關的類

2)構造一個資料流對象

3)利用資料輸入流類的方法讀取二進位檔案的資料

dis.read();//讀取位元組資料

4)關閉資料輸入流

dis.close();//關閉資料輸入流

二、使用位元組流類DataOutputStream寫二進位檔案

DataOutputStream類是FileOutputStream的子類,需要用到FileOutputStream類。

具體操作步驟:

1)引入相關的類

2)構造一個資料輸出資料流對象

3)利用資料輸出資料流類的方法寫二進位檔案的資料

out.write(1);//將指定位元組資料寫入二進位檔案

4)關閉資料輸出資料流

out.close();

三、編寫一個Java程式讀取windows目錄下的win.ini檔案,並輸出其內容

 1 import java.io.DataInputStream; 2 import java.io.FileInputStream; 3 import java.io.FileNotFoundException; 4 import java.io.IOException; 5  6 /** 7  * 編寫一個Java程式讀取windows目錄下的win.ini檔案,並輸出其內容 8  * @author Administrator 9  *10  */11 public class Test041 {12 13     public static void main(String[] args) {14         DataInputStream dis = null;15         try {16             /*建立二進位輸入資料流*/17             dis = new DataInputStream(new FileInputStream("C:\\windows\\win.ini"));18             19             /*迴圈讀取並輸出資訊*/20             int temp;21             while((temp=dis.read())!=-1){22                 System.out.print((char)temp);23             }24         } catch (FileNotFoundException e) {25             e.printStackTrace();26         } catch (IOException e) {27             e.printStackTrace();28         }29         finally{30             if (dis!=null) {31                 try {32                     dis.close();33                 } catch (IOException e) {34                     e.printStackTrace();35                 }36             }37         }38 39     }40 41 }

四、DataInputStream類與DataOutputStream類搭配使用,可以按照與平台無關的方式從流中讀取基礎資料型別 (Elementary Data Type)的資料

1.DataInputStream的readUTF()方法能讀取採用utf-8字元編碼的字串;

2.DataOutputStream的writeUTF()方法能寫入採用utf-8字元編碼的字串;

test:複製圖片

 1 import java.io.DataInputStream; 2 import java.io.DataOutputStream; 3 import java.io.FileInputStream; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6  7 /** 8  * 複製圖片(二進位位元組流) 9  * @author Administrator10  *11  */12 public class Test004 {13 14     public static void main(String[] args) {15         FileInputStream fis = null;16         FileOutputStream fos = null;17         DataInputStream dis = null;18         DataOutputStream dos = null;19         try {20             //建立輸入資料流21             fis = new FileInputStream("D:\\tengyicheng\\timg.jpg");22             dis = new DataInputStream(fis);23             //建立輸出資料流24             fos = new FileOutputStream("D:\\tengyicheng\\myFile\\timg.jpg");25             dos = new DataOutputStream(fos);26             //迴圈讀取錄入27             int temp;28             while((temp = dis.read())!=-1){29                 dos.write(temp);30             }31         } catch (IOException e) {32             e.printStackTrace();33         }34         finally{35             try {36                 if (fis!=null) {37                     fis.close();38                 }39                 if (fos!=null) {40                     fos.close();41                 }42                 if (dis!=null) {43                     dis.close();44                 }45                 if (dos!=null) {46                     dos.close();47                 }48             } catch (IOException e) {49                 e.printStackTrace();50             }51         }52 53     }54 55 }

 

簡單Java程式向公用程式的過度:二進位檔案的讀寫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.