Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java InputStream 類

在本教程中,我們將通過(guò)一個(gè)示例來(lái)學(xué)習(xí)Java InputStream類及其方法。

java.io包的InputStream類是一個(gè)抽象超類,它表示字節(jié)的輸入流。

由于InputStream是抽象類,因此它本身沒(méi)有用。但是,其子類可用于讀取數(shù)據(jù)。

InputStream的子類

為了使用的InputStream功能,我們可以使用其子類。它的子類有:

Java InputStream子類是FileInputStream,ByteArrayInputStream和ObjectInputStream。

在下一個(gè)教程中,我們將學(xué)習(xí)所有這些子類。

創(chuàng)建一個(gè)InputStream

為了創(chuàng)建InputStream,我們必須首先導(dǎo)入java.io.InputStream包。導(dǎo)入包后,就可以創(chuàng)建輸入流。

// 創(chuàng)建一個(gè)InputStream
InputStream object1 = new FileInputStream();

在這里,我們使用FileInputStream創(chuàng)建了一個(gè)輸入流。這是因?yàn)镮nputStream是一個(gè)抽象類。因此,我們不能創(chuàng)建InputStream的對(duì)象。

注意:我們還可以從InputStream的其他子類創(chuàng)建輸入流。

InputStream的方法

InputStream類提供了由其子類實(shí)現(xiàn)的不同方法。以下是一些常用的方法

  • read() - 從輸入流中讀取一個(gè)字節(jié)的數(shù)據(jù)

  • read(byte[] array) - 從流中讀取字節(jié)并存儲(chǔ)在指定的數(shù)組中

  • available() - 返回輸入流中可用的字節(jié)數(shù)

  • mark() - 標(biāo)記輸入流中數(shù)據(jù)所在的位置

  • reset() -將控制點(diǎn)返回到流中設(shè)置標(biāo)記的點(diǎn)

  • markSupported()- 檢查流中是否支持mark()和reset()方法

  • skips() - 跳過(guò)和丟棄輸入流中的指定字節(jié)數(shù)

  • close() - 關(guān)閉輸入流

示例:InputStream使用FileInputStream

下面是使用FileInputStream類實(shí)現(xiàn)InputStream的方法。

假設(shè)我們有一個(gè)名為input.txt的文件,其中包含以下內(nèi)容。

這是文件中的一行文本。

讓我們嘗試使用FileInputStream (InputStream的子類)來(lái)讀取這個(gè)文件。

import java.io.FileInputStream;
import java.io.InputStream;

public class Main {
    public static void main(String args[]) {

        byte[] array = new byte[100];

        try {
            InputStream input = new FileInputStream("input.txt");

            System.out.println("文件中的可用字節(jié): " + input.available());

            //從輸入流中讀取字節(jié)
            input.read(array);
            System.out.println("從文件讀取的數(shù)據(jù): ");

            //將字節(jié)數(shù)組轉(zhuǎn)換為字符串
            String data = new String(array);
            System.out.println(data);

            //關(guān)閉輸入流
            input.close();
        }
        catch (Exception e) {
            e.getStackTrace();
        }
    }
}

輸出結(jié)果

文件中的可用字節(jié): 35
從文件讀取的數(shù)據(jù):
這是文件中的一行文本。

在上面的示例中,我們使用FileInputStream類創(chuàng)建了輸入流。輸入流與文件input.txt鏈接。

InputStream input = new FileInputStream("input.txt");

為了從input.txt文件中讀取數(shù)據(jù),我們實(shí)現(xiàn)了這兩種方法。

input.read(array);      //從輸入流中讀取數(shù)據(jù)
input.close();             //關(guān)閉輸入流
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清