當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。