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

Java字節(jié)流 從文件輸入輸出到文件過程解析

 更新時間:2019年09月23日 14:21:41   作者:SupermanH  
這篇文章主要介紹了Java字節(jié)流 從文件輸入 輸出到文件過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

假如需要復(fù)制一張圖片,一份word,一個rar包??梢砸宰止?jié)流的方式,讀取文件,然后輸出到目標(biāo)文件夾。

以復(fù)制一張4M的圖片舉例。

每次讀一個字節(jié):

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

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

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

import java.io.*;
public class 字節(jié)流的緩沖區(qū) {
  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("正常運行!");
  }
}

這里設(shè)置的字節(jié)數(shù)組是1024個字節(jié)。復(fù)制的時間比一個字節(jié)一個字節(jié)的復(fù)制快很多。

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

字節(jié)緩沖流

用BufferedInputStream和BufferedOutputStream來封裝FileInputStream和FileOutputStream

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

import java.io.*;
public class 字節(jié)緩沖流 {
  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類的對象用字節(jié)流寫入文件時

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("輸出成功");
  }
}

當(dāng)需要以附加的形式寫入文件時

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

轉(zhuǎn)換流

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

String x = in.read();

InputSteamReader和OutputStreamReader為轉(zhuǎn)換流,前者將字節(jié)流轉(zhuǎn)化為字符流,后者將字符流轉(zhuǎn)化為字節(jié)流

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot?ErrorPageFilter的實際應(yīng)用詳解

    springboot?ErrorPageFilter的實際應(yīng)用詳解

    這篇文章主要介紹了springboot?ErrorPageFilter的實際應(yīng)用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 為什么mybatis中的SqlSession一定要關(guān)閉

    為什么mybatis中的SqlSession一定要關(guān)閉

    這篇文章主要介紹了為什么mybatis中的SqlSession一定要關(guān)閉,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中ClassLoader類加載學(xué)習(xí)總結(jié)

    Java中ClassLoader類加載學(xué)習(xí)總結(jié)

    本篇文章主要給大家講述了Java中ClassLoader類加載的原理以及用法總結(jié),一起學(xué)習(xí)下。
    2017-12-12
  • 詳解SpringBoot如何自定義啟動畫面

    詳解SpringBoot如何自定義啟動畫面

    當(dāng)我們在啟動SpringBoot項目時候會在控制臺上看到一些單調(diào)的圖案,有些朋友覺得這些圖案很單調(diào),那我們是否可以自定義啟動畫面呢,接下來小編就給大家介紹一下SpringBoot是如何實現(xiàn)自定義啟動畫面,感興趣的同學(xué)跟著小編一起來看看吧
    2023-07-07
  • springboot返回值轉(zhuǎn)成JSONString的處理方式

    springboot返回值轉(zhuǎn)成JSONString的處理方式

    這篇文章主要介紹了springboot返回值轉(zhuǎn)成JSONString的處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Jmeter調(diào)用java腳本過程詳解

    Jmeter調(diào)用java腳本過程詳解

    這篇文章主要介紹了Jmeter調(diào)用java腳本過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Java的String類中的startsWith方法和endsWith方法示例詳解

    Java的String類中的startsWith方法和endsWith方法示例詳解

    大家應(yīng)該都知道startsWith()方法用于檢測字符串是否以指定的前綴開始,endsWith()方法用于測試字符串是否以指定的后綴結(jié)束,本文就Java的String類中的startsWith方法和endsWith方法給大家詳細(xì)講解,感興趣的朋友一起看看吧
    2023-11-11
  • Java 策略模式與模板方法模式相關(guān)總結(jié)

    Java 策略模式與模板方法模式相關(guān)總結(jié)

    這篇文章主要介紹了Java 策略模式與模板方法模式相關(guān)總結(jié),幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01
  • springboot后端使用LocalDate接收日期的問題解決

    springboot后端使用LocalDate接收日期的問題解決

    在做Java開發(fā)時,肯定會碰到傳遞時間參數(shù)的情況,本文主要介紹了springboot后端使用LocalDate接收日期的問題解決,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Java入門基礎(chǔ)之Java的基本語法與Java所支持的數(shù)據(jù)類型

    Java入門基礎(chǔ)之Java的基本語法與Java所支持的數(shù)據(jù)類型

    這篇文章主要介紹了Java入門基礎(chǔ)之Java的基本語法與Java所支持的數(shù)據(jù)類型,熟悉語法和數(shù)據(jù)類型通常是了解一種編程語言的開始,需要的朋友可以參考下
    2016-02-02

最新評論