当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java DataInputStream readFully()用法及代码示例


Java中的DataInputStream类的readFully()方法有两种类型:

  1. readFully(byte [] b)Java中DataInputStream类的方法用于从输入流中读取等于字节数组b长度的字节,并将其存储到字节数组b中。

    总合同:
    在下列情况之一的情况下,将阻止readFully(byte [] b)方法:

    • 输入数据可用,并且返回正常。
    • 文件结束,并引发EOFException。
    • 发生I /O错误,并引发IOException。

    用法:

    public final void readFully(byte[] b)
                      throws IOException
    

    指定者:此方法由DataInput接口的readFully()方法指定。

    参数:此方法接受一个参数b,该参数b表示要在其中读取数据的字节数组。



    返回值:此方法不返回任何值。

    异常:

    • NullPointerException -如果字节数组为null,则抛出NullPointerException。
    • EOFException-如果文件结束,则抛出EOFException。
    • IOException-如果流关闭或发生其他一些I /O错误,则此方法将引发IOException。

    以下示例程序旨在说明IO包中DataInputStream类中的readFully(byte [])方法:

    程序:假设存在文件“c:/demo.txt”。

    // Java program to illustrate 
    // DataInputStream readFully(byte[]) method 
    import java.io.*; 
    public class GFG { 
        public static void main(String[] args) 
            throws IOException 
        { 
      
            // Create input stream 'demo.txt' 
            // for reading containing 
            // text "GEEKSFORGEEKS" 
            FileInputStream inputStream 
                = new FileInputStream( 
                    "c:/demo.txt"); 
      
            // Convert inputStream to 
            // DataInputStream 
            DataInputStream dataInputStr 
                = new DataInputStream( 
                    inputStream); 
      
            // Count the total bytes 
            int count = dataInputStr.available(); 
      
            // Create byte array 
            byte[] b = new byte[count]; 
      
            // Read full data into byte array 
            dataInputStr.readFully(b); 
      
            for (byte by:b) { 
                // Print the character 
                System.out.print((char)by); 
            } 
        } 
    }
    输入:
    输出:
  2. readFully(byte [] b,int偏移量,int长度)Java中DataInputStream类的方法用于从输入流中读取等于通过‘length’传递的参数的字节,并将其存储到字节数组b中。

    总合同:
    在以下情况之一的情况下,将阻止readFully(byte [],int,int)方法:

    • 输入数据可用,并且返回正常。
    • 文件结束,并引发EOFException。
    • 发生I /O错误,并引发IOException。

    用法:

    public final void readFully(byte[] b,
                                int offset,
                                int length)
                         throws IOException
    

    指定者:此方法由DataInput接口的readFully()方法指定。

    参数:此方法接受三个参数:

    • b-它表示要在其中读取数据的字节数组。
    • offset-它表示字节数组中的起始索引。
    • length-它表示要读取的字节总数。

    返回值:此方法不返回任何值。

    异常:

    • NullPointerException -如果字节数组为null,则抛出NullPointerException。
    • IndexOutOfBoundsException-如果offset为负或length为负或length大于字节数组和offset的长度之差,则抛出IndexOutOfBoundsException。
    • EOFException-如果文件结束,则抛出EOFException。
    • IOException-如果流关闭或发生其他一些I /O错误,则此方法将引发IOException。

    以下示例程序旨在说明IO包中DataInputStream类中的readFully(byte [],int,int)方法:

    程序:假设存在文件“c:/demo.txt”。

    // Java program to illustrate 
    // DataInputStream readFully(byte[], int, int) method 
    import java.io.*; 
    public class GFG { 
        public static void main(String[] args) 
            throws IOException 
        { 
      
            // Create input stream 'demo.txt' 
            // for reading containing 
            // text "GEEKSFORGEEKS" 
            FileInputStream inputStream 
                = new FileInputStream( 
                    "c:/demo.txt"); 
      
            // Convert inputStream to 
            // DataInputStream 
            DataInputStream dataInputStr 
                = new DataInputStream( 
                    inputStream); 
      
            // Count the total bytes 
            int count = dataInputStr.available(); 
      
            // Create byte array 
            byte[] b = new byte[count]; 
      
            // Read full data into byte array 
            dataInputStr.readFully(b, 4, 5); 
      
            for (byte by:b) { 
                // Print the character 
                System.out.print((char)by); 
            } 
        } 
    }
    输入:
    输出:

参考文献:
1. https://docs.oracle.com/javase/10/docs/api/java/io/DataInputStream.html#readFully(byte%5B%5D)
2. https://docs.oracle.com/javase/10/docs/api/java/io/DataInputStream.html#readFully(byte%5B%5D, int, int)




相关用法


注:本文由纯净天空筛选整理自pp_pankaj大神的英文原创作品 DataInputStream readFully() method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。