欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關于Java中的IO流總結(推薦)

 更新時間:2017年05月01日 10:00:45   投稿:jingxian  
下面小編就為大家?guī)硪黄P于Java中的IO流總結(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1、 流的繼承關系,以及字節(jié)流和字符流。

2、 節(jié)點流FileOutputStream和FileInputStream和處理流BufferedInputStream和BufferedOutputStream。以及對應的FileOutputWriter,F(xiàn)ileInputReader,BufferedInputReader,BufferedOutputWriter。

3、 轉換流InputStreamReader和OutputStreamWriter

一:流的繼承關系

字節(jié)流

字符流

字符流和字節(jié)流的使用范圍:字節(jié)流一般用來處理圖像,視頻,以及PPT,Word類型的文件。字符流一般用于處理純文本類型的文件,如TXT文件等,字節(jié)流可以用來處理純文本文件,但是字符流不能用于處理圖像視頻等非文本類型的文件。

二:處理流BufferedReader,BufferedWriter,BufferedInputStream

BufferedOutputsStream,都要包上一層節(jié)點流。也就是說處理流是在節(jié)點流的基礎之上進行的,帶有Buffered的流又稱為緩沖流,緩沖流處理文件的輸入輸出的速度是最快的。所以一般緩沖流的使用比較多。

下面是兩個簡單的文件復制的實例:

public class MycopyTest {
  public static void main(String[] args) {
    File src = new File("D:/1.jpg");
    // D:/1.jpg必須的存在不然會報錯
    File dest = new File("D:/2.jpg");
    // 如果D:/2.jpg存在則覆蓋,如果不存在則新建
    streamCopy(src, dest);
  }
private static void readCopy(File src,File dest)
  {
    FileReader fr=null;
    FileWriter fw=null;
    BufferedReader br=null;
    BufferedWriter bw=null;
    try {
      fr=new FileReader(src);
      fw=new FileWriter(dest);
      br=new BufferedReader(fr);
      bw=new BufferedWriter(fw);
      String str;
      while((str=br.readLine())!=null)
      {
        bw.write(str);
        bw.newLine();
      }
    }catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    try {
      bw.close();
      br.close();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

  }
  private static void streamCopy(File src, File dest) {
    FileInputStream fis = null;
    FileOutputStream fos = null;
    BufferedInputStream bis = null;
    BufferedOutputStream bos = null;
    try {
      fis = new FileInputStream(src);
      fos = new FileOutputStream(dest);
      bis = new BufferedInputStream(fis);
      bos = new BufferedOutputStream(fos);
      int len;
      byte[] b = new byte[1024];
      while ((len = bis.read(b)) != -1) {
        bos.write(b, 0, len);
        // bos.write(b,0,len);是把讀到數(shù)組的大小字節(jié)寫入
        // bos.write(b);最后一次如果數(shù)組未寫滿的話就會多讀。
      }
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    try {
      bos.close();
      bis.close();
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}

 三:轉換流InputStreamReader和OutputStreamWriter

 轉換流的作用,文本文件在硬盤中以字節(jié)流的形式存儲時,通過InputStreamReader讀取后轉化為字符流給程序處理,程序處理的字符流通過OutputStreamWriter轉換為字節(jié)流保存。

public class InputStreamWriterTest {
  public static void main(String[] args) {
    File src = new File("D:/Files/哈哈.txt");
    File dest = new File("D:/Files/斯密斯.txt");
    BufferedWriter bw = null;
    BufferedReader br = null;
    FileInputStream fis = null;
    FileOutputStream fos = null;
    try {
      fis = new FileInputStream(src);
      fos = new FileOutputStream(dest);
      InputStreamReader ir = new InputStreamReader(fis, "GBK");
      OutputStreamWriter ow = new OutputStreamWriter(fos, "GBK");
      bw = new BufferedWriter(ow);
      br = new BufferedReader(ir);
      String str;
      while ((str = br.readLine()) != null) {
        bw.write(str);
        bw.newLine();
        bw.flush();
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
    try {
      bw.close();
      br.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

以上這篇關于Java中的IO流總結(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot Session接口驗證實現(xiàn)流程詳解

    SpringBoot Session接口驗證實現(xiàn)流程詳解

    這篇文章主要介紹了SpringBoot+Session實現(xiàn)接口驗證(過濾器+攔截器)文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-09-09
  • Java實現(xiàn)導入csv的示例代碼

    Java實現(xiàn)導入csv的示例代碼

    這篇文章主要為大家詳細介紹了Java實現(xiàn)導入csv的相關知識,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • SpringBoot調用外部接口的幾種方式

    SpringBoot調用外部接口的幾種方式

    SpringBoot應用中,調用外部接口是微服務架構常見需求,本文主要介紹了SpringBoot調用外部接口的幾種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-10-10
  • java開發(fā)hutool HttpUtil網絡請求工具使用demo

    java開發(fā)hutool HttpUtil網絡請求工具使用demo

    這篇文章主要為大家介紹了hutool之HttpUtil網絡請求工具使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Java8利用Stream實現(xiàn)列表去重的方法詳解

    Java8利用Stream實現(xiàn)列表去重的方法詳解

    這篇文章主要為大家介紹了Java利用Stream實現(xiàn)列表去重的幾種方法詳解,文中的示例代碼講解詳細,需要的小伙伴可以參考一下
    2022-04-04
  • idea如何查看安裝插件的位置

    idea如何查看安裝插件的位置

    這篇文章主要介紹了idea如何查看安裝插件的位置問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • springBoot基于webSocket實現(xiàn)掃碼登錄

    springBoot基于webSocket實現(xiàn)掃碼登錄

    最近做了個新項目,涉及到掃碼登錄。之前項目使用的是 ajax輪詢的方式。感覺太low了。所以這次用webSocket的方式進行實現(xiàn),感興趣的可以了解一下
    2021-06-06
  • HashMap和HashTable底層原理以及常見面試題

    HashMap和HashTable底層原理以及常見面試題

    今天小編就為大家分享一篇關于HashMap和HashTable底層原理以及常見面試題,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 詳解Java類庫的概念以及import的使用方法

    詳解Java類庫的概念以及import的使用方法

    這篇文章主要介紹了詳解Java類庫的概念以及import的使用方法,是Java入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • 詳解使用Spring?Data?repository進行數(shù)據層的訪問問題

    詳解使用Spring?Data?repository進行數(shù)據層的訪問問題

    這篇文章主要介紹了使用Spring?Data?repository進行數(shù)據層的訪問,抽象出Spring Data repository是因為在開發(fā)過程中,常常會為了實現(xiàn)不同持久化存儲的數(shù)據訪問層而寫大量的大同小異的代碼,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2022-06-06

最新評論