最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java FileInputStream與FileOutputStream使用詳解

 更新時間:2021年08月14日 10:54:46   作者:歐陽奔少  
這篇文章主要介紹了Java FileInputStream與FileOutputStream使用詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

什么是InputStream和OutputStream?

InputStream和OutputStream是抽象類,是所有字節(jié)輸入流和輸出流的父類。這里,我們首先要分清楚兩個概念:

  • InputStream(輸入流):輸入流是用來讀入數(shù)據(jù)的。- - - > > >讀入
  • OutputStream(輸出流):輸出流是用來寫出數(shù)據(jù)的。- - - > > >寫出

文件輸入流——FileInputStream

FileInputStream 從文件系統(tǒng)中的某個文件中獲得輸入字節(jié)。

構(gòu)造方法

//通過打開一個到實(shí)際文件的連接來創(chuàng)建一個 FileInputStream,該文件通過文件系統(tǒng)中的 File 對象 file 指定。
public FileInputStream(File file);

//通過打開一個到實(shí)際文件的連接來創(chuàng)建一個 FileInputStream,該文件通過文件系統(tǒng)中的路徑名 name 指定。
public FileInputStream(String name);

常用的方法

從輸入流中讀取一個字節(jié)大小的數(shù)據(jù)

//從此輸入流中讀取一個數(shù)據(jù)字節(jié)。
public int read();

從輸入流一次讀取一個字節(jié)數(shù)組

//從此輸入流中將最多 b.length 個字節(jié)的數(shù)據(jù)讀入一個 byte 數(shù)組中。
public int read(byte[] b);

//從此輸入流中將最多 len 個字節(jié)的數(shù)據(jù)讀入一個 byte 數(shù)組中。off:目標(biāo)數(shù)組 b 中的起始偏移量。
public int read(byte[] b,int off,int len);

從文件中讀取數(shù)據(jù):

import java.io.FileInputStream;

/**
 * FileInputStream:節(jié)點(diǎn)流(低級流),從文件中讀入數(shù)據(jù)
 * @author Administrator
 *
 */
public class FISDemo01 {
    public static void main(String[] args){
        String content=null;
        try {
            int size=0;
            //定義一個字節(jié)緩沖區(qū),該緩沖區(qū)的大小根據(jù)需要來定義
            byte[] buffer=new byte[1024];
            FileInputStream fis=new FileInputStream("FOSDemo.txt");
            //循環(huán)來讀取該文件中的數(shù)據(jù)
            while((size=fis.read(buffer))!=-1){
                content=new String(buffer, 0, size);
                System.out.println(content);
            }
        //關(guān)閉此文件輸入流并釋放與此流有關(guān)的所有系統(tǒng)資源。 
        fis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

文件輸出流——FileOutputStream

文件輸出流是用于將數(shù)據(jù)寫入到文件中。

構(gòu)造方法

//創(chuàng)建一個向指定 File 對象表示的文件中寫入數(shù)據(jù)的文件輸出流。
public FileOutputStream(File file);

//創(chuàng)建一個向指定 File 對象表示的文件中寫入數(shù)據(jù)的文件輸出流。如果第二個參數(shù)為 true,則將字節(jié)寫入文件末尾處,而不是寫入文件開始處。
public FileOutputStream(File file,boolean append);

//創(chuàng)建一個向具有指定名稱的文件中寫入數(shù)據(jù)的輸出文件流。
public FileOutputStream(String name);

//創(chuàng)建一個向具有指定 name 的文件中寫入數(shù)據(jù)的輸出文件流。如果第二個參數(shù)為 true,則將字節(jié)寫入文件末尾處,而不是寫入文件開始處。
public FileOutputStream(String name,boolean append);

常用方法

向文件中寫入一個字節(jié)大小的數(shù)據(jù)

//向文件中寫入一個字節(jié)大小的數(shù)據(jù)
public void write(int b);

向文件中一次性寫入一個字節(jié)數(shù)組的數(shù)據(jù)

//將 b.length 個字節(jié)從指定 byte 數(shù)組寫入此文件輸出流中。
public void write(byte[] b);

//指定 byte 數(shù)組中從偏移量 off 開始的 len 個字節(jié)寫入此文件輸出流。 
public void write(byte[] b,int off,int len);

向文件中寫出數(shù)據(jù):

import java.io.FileOutputStream;

/**
 * FileOutputStream:節(jié)點(diǎn)流(低級流),向文件中寫出數(shù)據(jù) 
 * @author Administrator
 *
 */
public class FOSDemo01 {
    public static void main(String[] args){
        try {
            //向文件中寫入字節(jié)數(shù)組
            String font="輸出流是用來寫入數(shù)據(jù)的!";
            FileOutputStream fos = new FileOutputStream("FOSDemo.txt");
            fos.write(font.getBytes());
            //關(guān)閉此文件輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源。此文件輸出流不能再用于寫入字節(jié)。 如果此流有一個與之關(guān)聯(lián)的通道,則關(guān)閉該通道。 
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用FileInputStream和FileOutputStream實(shí)現(xiàn)文件的復(fù)制

import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 * 使用文件輸入流和文件輸出流實(shí)現(xiàn)文件的復(fù)制
 * @author Administrator
 *
 */
public class SummaryFISAndFOS {
    public static void main(String[] args){
        /**
         * 1.先將文件中的內(nèi)容讀入到輸入流中
         * 2.將輸入流中的數(shù)據(jù)通過輸出流寫入到目標(biāo)文件中
         * 3.關(guān)閉輸入流和輸出流
         */
        try {
            long begin=System.currentTimeMillis();
            //從輸入流中讀取數(shù)據(jù)
            FileInputStream fis=new FileInputStream("FOSDemo.txt");
            //向輸出流中寫入數(shù)據(jù)
            FileOutputStream fos=new FileOutputStream("FISAndFOSDest.txt");
            //先定義一個字節(jié)緩沖區(qū),減少I/O次數(shù),提高讀寫效率
            byte[] buffer=new byte[10240];
            int size=0;
            while((size=fis.read(buffer))!=-1){
                fos.write(buffer, 0, size);
            }
            fis.close();
            fos.close();
            long end=System.currentTimeMillis();
            System.out.println("使用文件輸入流和文件輸出流實(shí)現(xiàn)文件的復(fù)制完畢!耗時:"+(end-begin)+"毫秒");
        } catch (Exception e) {
            e.printStackTrace();
        }
        //解決JNI問題(Java Native Interface)
        System.exit(0);
    }
}

運(yùn)行結(jié)果:
使用文件輸入流和文件輸出流實(shí)現(xiàn)文件的復(fù)制完畢!耗時:17毫秒

以上基本上就是我們經(jīng)常用到的方法的介紹,記得最后一定要close()哦!

到此這篇關(guān)于Java FileInputStream與FileOutputStream使用詳解的文章就介紹到這了,更多相關(guān)Java FileInputStream與FileOutputStream內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 類型信息詳解和反射機(jī)制介紹

    Java 類型信息詳解和反射機(jī)制介紹

    這篇文章主要介紹了Java 類型信息詳解和反射機(jī)制介紹,需要的朋友可以參考下
    2020-11-11
  • Mybatis-Mapper.xml文件前綴詳解

    Mybatis-Mapper.xml文件前綴詳解

    這篇文章主要介紹了Mybatis-Mapper.xml文件前綴,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • SpringBoot使用spring.factories加載默認(rèn)配置的實(shí)現(xiàn)代碼

    SpringBoot使用spring.factories加載默認(rèn)配置的實(shí)現(xiàn)代碼

    在日常開發(fā)過程中,發(fā)布一些產(chǎn)品或者框架時,會遇到某些功能需要一些配置才能正常運(yùn)行,這時我們需要的提供默認(rèn)配置項(xiàng),同時用戶也能覆蓋進(jìn)行個性化
    2024-06-06
  • Java實(shí)現(xiàn)SSH模式加密

    Java實(shí)現(xiàn)SSH模式加密

    這篇文章主要介紹了Java實(shí)現(xiàn)SSH模式加密的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • Java中ThreadLocal避免內(nèi)存泄漏的方法詳解

    Java中ThreadLocal避免內(nèi)存泄漏的方法詳解

    ThreadLocal是Java中的一個線程本地存儲機(jī)制,它允許每個線程擁有一個獨(dú)立的本地存儲空間,用于存儲該線程的變量,本文主要介紹了ThreadLocal如何避免內(nèi)存泄漏,需要的朋友可以參考下
    2023-05-05
  • java實(shí)現(xiàn)的順時針/逆時針打印矩陣操作示例

    java實(shí)現(xiàn)的順時針/逆時針打印矩陣操作示例

    這篇文章主要介紹了java實(shí)現(xiàn)的順時針/逆時針打印矩陣操作,涉及java基于數(shù)組的矩陣存儲、遍歷、打印輸出等相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • @Column映射不一致的解決

    @Column映射不一致的解決

    這篇文章主要介紹了@Column映射不一致的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • IDEA實(shí)現(xiàn)添加 前進(jìn)后退 到工具欄的操作

    IDEA實(shí)現(xiàn)添加 前進(jìn)后退 到工具欄的操作

    這篇文章主要介紹了IDEA 前進(jìn) 后退 添加到工具欄的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java 數(shù)據(jù)結(jié)構(gòu)七大排序使用分析

    Java 數(shù)據(jù)結(jié)構(gòu)七大排序使用分析

    這篇文章主要介紹了Java常用的排序算法及代碼實(shí)現(xiàn),在Java開發(fā)中,對排序的應(yīng)用需要熟練的掌握,這樣才能夠確保Java學(xué)習(xí)時候能夠有扎實(shí)的基礎(chǔ)能力。那Java有哪些排序算法呢?本文小編就來詳細(xì)說說Java常見的排序算法,需要的朋友可以參考一下
    2022-04-04
  • Java特性之注解和異常?Throwable

    Java特性之注解和異常?Throwable

    這篇文章主要介紹了Java特性之注解和異常,注解是JDK1.5版本開始引入的一個特性,Throwable是Java語言中所有錯誤與異常的超類,文章圍繞主題展開更多的相關(guān)介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06

最新評論

张掖市| 石林| 泸州市| 高台县| 平果县| 隆化县| 崇阳县| 邹城市| 句容市| 茶陵县| 乳山市| 南宁市| 洛宁县| 东安县| 湘乡市| 巴青县| 宝坻区| 宁南县| 吐鲁番市| 青岛市| 和林格尔县| 宜黄县| 建德市| 湘阴县| 板桥市| 新源县| 喜德县| 仙桃市| 崇仁县| 平邑县| 蒙城县| 嘉善县| 东兰县| 大关县| 神农架林区| 大方县| 临漳县| 登封市| 上栗县| 收藏| 温宿县|