Java ByteArrayInputStream.read()方法

原文:https://www.studytonight.com/java-file-io/java-bytearrayinputstream-read-method

在本教程中,我们将学习 JavaBytearrainputstream类的read()方法。这个方法读取 ByteArrrayInputStream 的下一个字节,并且一次只从流中读取一个字节。这是一个非静态方法,在 java.io 包中可用,只能使用类对象访问。读取字节时,它可能会引发异常。

语法:

这是此方法的语法声明。它不接受任何参数,并返回以整数形式读取的字节。如果它到达流的末尾,它将返回-1。

public int read()

示例:ByteArrayInputStream读取()方法

我们使用 read()方法从缓冲区中读取数据,这个方法将返回 ASCII 码格式的整数,如果数据是字符形式,那么我们需要相应地输入大小写。

import java.io.ByteArrayInputStream;
import java.io.IOException;
public class StudyTonight 
{
    public static void main(String[] args) throws IOException 
    { 
        byte[] buf = {1, 2, 3, 4, 5}; 

        ByteArrayInputStream byteArrayInputStr = new ByteArrayInputStream(buf); 
        int b = 0; 
        while ((b = byteArrayInputStr.read()) != -1) 
        { 
            System.out.print(" " + b); 
        }
    }  
}

1 2 3 4 5

示例:ByteArrayInputStream读取()方法

这里我们使用了 read 方法的另一个重载方法,它接受三个参数,第一个参数是我们想要存储数据的缓冲区,第二个参数是开始读取的起始位置,我们也称之为偏移量,第三个参数是数据的长度。

import java.io.ByteArrayInputStream;
import java.io.IOException;
public class StudyTonight 
{
    public static void main(String[] args) throws IOException 
    { 

        byte[] buf = {4, 8, 12, 16}; 

        ByteArrayInputStream byteArrayInputStr = new ByteArrayInputStream(buf); 

        byte[] b = new byte[2]; 

        int total_bytes = byteArrayInputStr.read(b, 0, 2); 

        System.out.println("Total bytes read: " + total_bytes); 

        for (byte ch : b) 
        {   
            System.out.print(ch+" "); 
        } 
    }  
}

读取的总字节数:2 4 8

mail结论:

在本教程中,我们学习了 JavaBytearrainputstream类的read()方法,该方法用于读取当前输入流的下一个字节,一次读取一个字节,并以整数的形式返回读取的字节,如果到达流的末尾,则返回-1。