黄色片女人_av毛片国产_亚洲精品成_91视频a - 黄色三级网站

JavaIO流學習總結報告

時間:2022-12-07 13:01:46 學習總結 我要投稿
  • 相關推薦

JavaIO流學習總結報告

  一、什么是流?

JavaIO流學習總結報告

  流就是字節序列的抽象概念,能被連續讀取數據的數據源和能被連續寫入數據的接收端就是流,流機制是Java及C++中的一個重要機制,通過流我們可以自由地控制文件、內存、IO設備等數據的流向。而IO流就是用于處理設備上的數據,如:硬盤、內存、鍵盤錄入等。IO流根據處理類型的不同可分為字節流和字符流,根據流向的不同可分為輸入流和輸出流。

  二、字節流和字符流的區別:

  字符流,因為文件編碼的不同,就有了對字符進行高效操作的字符流對象,它的原理就是基于字節流讀取字節時去查了指定的碼表。它和字節流的區別有兩點:1.在讀取數據的時候,字節流讀到一個字節就返回一個字節,字符流使用了字節流讀到一個或多個字節(一個中文對應的字節數是兩個,在UTF-8碼表中是3個字節)時,先去查指定的編碼表,再將查到的字符返回;2.字節流可以處理所有類型的數據,如jpg、avi、mp3、wav等等,而字符流只能處理字符數據。所以可以根據處理的文件不同考慮使用字節流還是字符流,如果是純文本數據可以優先考慮字符流,否則使用字節流。

  三、IO體系,所具備的基本功能就是讀和寫:

  1.字符流

  |-- Reader(讀)

  |-- Writer(寫)

  Reader

  |--InputStreamReader

  |--FileReader:用于處理文件的字符讀取流對象

  Writer

  |--OutputStreamWriter

  |--FileWriter:用于處理文件的字符寫入流對象

  其實很容易就可以看出來,IO體系中的子類名后綴絕大部分是父類名稱,而前綴則是體現子類特有功能的名稱。

  Reader中常見的方法:

  |--int read()

  讀取一個字符,并返回讀到的這個字符,讀到流的末尾則返回-1。

  |--int read(char[])

  將讀到的字符存入指定的數組中,返回的是讀到的字符個數,讀到流的末尾則返回-1。 |--close()

  讀取字符其實用的是window系統的功能,就希望使用完畢后,進行資源的釋放。 FileReader除了自己的構造函數外沒有特有的方法:

  |--用于讀取文本文件的流對象。

  |--用于關聯文本文件。

  在讀取流對象初始化時,必須要指定一個被讀取的文件,

  如果該文件不存在則會發生FileNotFoundException異常。

  Writer中常見的方法:

  |--write()

  將一個字符寫入到流中。

  |--write(char[])

  將一個字符數組寫入到流中。

  |--writer(String)

  將一個字符寫入到流中。

  |--flush()

  刷新流,將流中的數據刷新到目的地中,流還存在。

  |--close()

  關閉資源,在關閉錢會先調用flush(),刷新流中的數據到目的地。

  FileWriter,除了自己的構造函數外沒有特有的方法:

  |--該類的特點

  |--用于處理文本文件

  |--沒有默認的編碼表

  |--有臨時緩沖

  |--構造函數,在寫入流對象初始化時,必須要有一個存儲數據的目的地。

  |--FileWriter(String fileName),該構造器是干什么用的呢?

  |--調用系統資源

  |--在指定位置創建一個文件,如果該文件已經存在則被覆蓋。

  |--FileWriter(String filename,Boolean append),這構造器的作用是當傳入的boolean類型的值為true時,會在指定文件末尾處進行數據的續寫。

  清單1,將文本數據保存到文件中代碼 private static void test1(){ FileWriter fw=null;

  //初始化FileWriter對象,指定文件名已經存儲路徑 fw=new FileWriter("D:/test.txt");

  fw.write("將字符串寫入流");

  //將流中的數據刷新到目的地,流還在 fw.flush();

  fw.write("將字符串寫入流"); } catch (IOException e) { e.printStackTrace(); }finally{ if(fw!=null){ try { fw.close(); } catch (IOException e1) { e1.printStackTrace(); } } }

  }

  清單2,讀取一個已有文本文件,并將文本內容打印出來代碼 private static void test2(){ FileReader fr=null; try {

  //初始化FileReader對象,指定文件路徑 fr=new FileReader("D:/test.txt"); int ch=0; while((ch=fr.read())!=-1){

  //每次讀取一個字符,直到讀到末尾-1為止 System.out.println((char)ch);

  } catch (IOException e) { e.printStackTrace(); }finally{ if(fr!=null){ try { fr.close(); } catch (IOException e1) { e1.printStackTrace(); } } }

  }

  這樣每讀到一個字符就打印出來,效率很不高,能不能按指定大小讀取完后再打印出來呢?答案是當然可以的。

  清單3,讀取一個已有文本文件,讀完1kb再將其讀到的內容打印出來代碼 private static void test3(){ FileReader fr=null; try {

  //初始化FileReader對象,指定文件路徑 fr=new FileReader("D:/test.txt"); char[] buf=new char[1024]; int len=0; while((len=fr.read(buf))!=-1){

  //每次讀取1kb大小的字符,直到讀到末尾-1為止 System.out.println(new String(buf,0,len)); } } catch (IOException e) {

【JavaIO流學習總結報告】相關文章:

學習總結報告04-30

關于學習培訓總結報告04-22

護士學習與實習總結報告05-07

實踐活動學習總結報告05-07

先進黨員學習總結報告05-04

出差學習個人總結報告05-03

國培學習總結報告05-03

黨員全年學習總結報告04-07

新課程培訓學習總結報告04-14