91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java字節流 從文件輸入輸出到文件過程解析

發布時間:2020-09-11 09:11:16 來源:腳本之家 閱讀:164 作者:SupermanH 欄目:編程語言

假如需要復制一張圖片,一份word,一個rar包。可以以字節流的方式,讀取文件,然后輸出到目標文件夾。

以復制一張4M的圖片舉例。

每次讀一個字節:

ch = (char)System.in.read(); //讀入一個字符,返回讀到的字節的int表示方式,讀到末尾返回-1

復制時候一個字節一個字節的讀取、寫入,這樣是很慢的。設置一個用來緩沖的字符數組,會讓復制的過程快很多(每次讀入的字節變多)。

方便閱讀,類的名稱用中文描述

import java.io.*;
public class 字節流的緩沖區 {
  public static void main(String[] args) throws Exception {
    FileInputStream in=new FileInputStream("E:\\photo\\IMG.jpg");
    //FileOutputStream中的文件不存在,將自動新建文件
    OutputStream out=new FileOutputStream("E:\\test.jpg");
    byte[] buff=new byte[1024];
    int b;
    long beginTime=System.currentTimeMillis();
    while ((b=in.read(buff))!=-1) {
      out.write(buff,0,b);
    }
    long endTime=System.currentTimeMillis();
    System.out.println("運行時長為: "+(endTime-beginTime)+"毫秒");
    in.close();
    out.close();
    System.out.println("正常運行!");
  }
}

這里設置的字節數組是1024個字節。復制的時間比一個字節一個字節的復制快很多。

//封裝了FileOutputStream管道之后,三種函數參數
//write(b) 寫入一個b
//write(byte[] b) 將字節數組全部寫入
//write(byte[] b,int off,int len) 例如write(byteTest,0,len)表示數組byteTest中從0開始長度為len的字節
//一般都用第3個

字節緩沖流

用BufferedInputStream和BufferedOutputStream來封裝FileInputStream和FileOutputStream

方便閱讀,類的名稱用中文描述

import java.io.*;
public class 字節緩沖流 {
  public static void main(String[] args) throws Exception {
    BufferedInputStream bis=new BufferedInputStream(new FileInputStream("E:\\photo\\IMG.jpg"));
    BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("E:\\test.jpg"));
    int len;
    long begintime=System.currentTimeMillis();
    while((len=bis.read())!=-1) {
      bos.write(len);
    }
    long endtime=System.currentTimeMillis();
    System.out.println("運行時間為:"+(endtime-begintime)+"毫秒");
    bis.close();
    bos.close();
    System.out.println("正常運行");
  }
}

將String類的對象用字節流寫入文件時

import java.io.*;
public class outFile {
  public static void main(String[] args) throws Exception {
    FileOutputStream out=new FileOutputStream("example.txt");
    String str="測試";
    byte[] b=str.getBytes();
    for(int i=0;i<b.length;i++) {
      out.write(b[i]);
    }
    out.close();
    System.out.println("輸出成功");
  }
}

當需要以附加的形式寫入文件時

FileOutputStream out=new FileOutputStream("example.txt",true);

轉換流

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

String x = in.read();

InputSteamReader和OutputStreamReader為轉換流,前者將字節流轉化為字符流,后者將字符流轉化為字節流

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东乡县| 赤峰市| 浠水县| 塔河县| 巴林右旗| 抚顺县| 曲沃县| 翁源县| 沭阳县| 陇川县| 淮阳县| 乌拉特中旗| 察雅县| 南京市| 禄丰县| 道真| 镇康县| 承德市| 利津县| 巧家县| 安龙县| 岐山县| 汉中市| 同心县| 碌曲县| 区。| 弋阳县| 南和县| 呼图壁县| 楚雄市| 云南省| 东乡县| 文化| 桃源县| 伊金霍洛旗| 昌吉市| 昌宁县| 中阳县| 林州市| 云龙县| 安西县|