亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Java中FileInputStream與FileOutputStream的用法

發布時間:2021-08-14 14:46:32 來源:億速云 閱讀:328 作者:chen 欄目:開發技術

這篇文章主要介紹“Java中FileInputStream與FileOutputStream的用法”,在日常操作中,相信很多人在Java中FileInputStream與FileOutputStream的用法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java中FileInputStream與FileOutputStream的用法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

什么是InputStream和OutputStream?

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

  • InputStream(輸入流):輸入流是用來讀入數據的。- - - > > >讀入

  • OutputStream(輸出流):輸出流是用來寫出數據的。- - - > > >寫出

文件輸入流——FileInputStream

FileInputStream 從文件系統中的某個文件中獲得輸入字節。

構造方法

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

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

常用的方法

從輸入流中讀取一個字節大小的數據

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

從輸入流一次讀取一個字節數組

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

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

從文件中讀取數據:

import java.io.FileInputStream;

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

文件輸出流——FileOutputStream

文件輸出流是用于將數據寫入到文件中。

構造方法

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

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

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

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

常用方法

向文件中寫入一個字節大小的數據

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

向文件中一次性寫入一個字節數組的數據

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

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

向文件中寫出數據:

import java.io.FileOutputStream;

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

使用FileInputStream和FileOutputStream實現文件的復制

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

/**
 * 使用文件輸入流和文件輸出流實現文件的復制
 * @author Administrator
 *
 */
public class SummaryFISAndFOS {
    public static void main(String[] args){
        /**
         * 1.先將文件中的內容讀入到輸入流中
         * 2.將輸入流中的數據通過輸出流寫入到目標文件中
         * 3.關閉輸入流和輸出流
         */
        try {
            long begin=System.currentTimeMillis();
            //從輸入流中讀取數據
            FileInputStream fis=new FileInputStream("FOSDemo.txt");
            //向輸出流中寫入數據
            FileOutputStream fos=new FileOutputStream("FISAndFOSDest.txt");
            //先定義一個字節緩沖區,減少I/O次數,提高讀寫效率
            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("使用文件輸入流和文件輸出流實現文件的復制完畢!耗時:"+(end-begin)+"毫秒");
        } catch (Exception e) {
            e.printStackTrace();
        }
        //解決JNI問題(Java Native Interface)
        System.exit(0);
    }
}

運行結果:
使用文件輸入流和文件輸出流實現文件的復制完畢!耗時:17毫秒

到此,關于“Java中FileInputStream與FileOutputStream的用法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

AI

泰州市| 子洲县| 鞍山市| 赤壁市| 灵山县| 泽州县| 南川市| 靖宇县| 来宾市| 桃园县| 桂林市| 石楼县| 七台河市| 永胜县| 榆树市| 吉安市| 安龙县| 宽甸| 邯郸县| 保德县| 门源| 铜陵市| 曲麻莱县| 澄城县| 南部县| 辰溪县| 华安县| 临安市| 子长县| 南昌市| 资讯| 辽宁省| 皋兰县| 织金县| 东至县| 泽普县| 石首市| 八宿县| 大同县| 赤水市| 克拉玛依市|