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


Java BufferedInputStream read()用法及代碼示例


  1. read()Java中BufferedInputStream類的方法用於從輸入流中讀取下一個數據字節。當在輸入流上調用此read()方法時,則此read()方法一次讀取輸入流的一個字符。

    用法:

    public int read()
    

    覆寫:
    它重寫FilterInputStream類的read()方法。

    參數:此方法不接受任何參數。

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

    異常:如果輸入流已通過調用其close()方法關閉或發生I /O錯誤,則此方法將引發IOException。



    以下示例程序旨在說明IO包中BufferedInputStream類中的read()方法:

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

    // Java program to illustrate 
    // BufferedInputStream read() method 
      
    import java.io.*; 
      
    public class GFG { 
        public static void main(String[] args) 
            throws Exception 
        { 
      
            // Create input stream 'demo.txt' 
            // for reading containing 
            // text "GEEKSFORGEEKS" 
            FileInputStream inputStream 
                = new FileInputStream("c:/demo.txt"); 
      
            // Convert inputStream to 
            // bufferedInputStream 
            BufferedInputStream buffInputStr 
                = new BufferedInputStream( 
                    inputStream); 
      
            // Read until a single byte is available 
            while (buffInputStr.available() > 0) { 
      
                // Read the byte and 
                // convert the integer to character 
                char c = (char)buffInputStr.read(); 
      
                // Print the characters 
                System.out.println("Char:" + c); 
            } 
        } 
    }
    輸入:
    輸出:
  2. read(byte [] b,int off,int len)Java中BufferedInputStream類的方法用於將byte-input流中的字節讀入指定的字節數組,該數組從用戶給定的偏移量開始。它本質上用於在將字符保留在數組中之後開始讀取。

    實現方式:

    • 在此方法的實現中,一次又一次調用read()方法。在調用此方法時,如果找到IOException,則它將調用中的異常返回到read(byte [] b,int off,int len)方法。
    • 如果進一步發現任何IOException,則它將捕獲異常,並且應該終止輸入文件。
    • 至此為止讀取的字節存儲在字節數組b中,並且返回發生異常之前讀取的字節數。

    用法:

    public int read(byte[] b,
                    int off,
                    int len)
    

    覆寫:
    它重寫FilterInputStream類的read()方法。

    參數:此方法接受三個參數。

    • b-它代表目標緩衝區。
    • off-它代表開始存儲字節的偏移量。
    • len-它表示要讀取的最大字節數。

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

    異常:如果輸入流已通過調用其close()方法關閉或發生I /O錯誤,則此方法將引發IOException。

    以下示例程序旨在說明IO包中BufferedInputStream類中的read(byte,int,int)方法:

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

    // Java program to illustrate 
    // BufferedInputStream 
    // read(byte int int) method 
      
    import java.io.*; 
    public class GFG { 
        public static void main(String[] args) 
        { 
      
            // Create input stream 'demo.txt' 
            // for reading containing 
            // text "GEEKSFORGEEKS" 
            FileInputStream inputStream 
                = new FileInputStream("c:/demo.txt"); 
      
            // Convert inputStream to 
            // bufferedInputStream 
            BufferedInputStream buffInputStr 
                = new BufferedInputStream( 
                    inputStream); 
      
            // Read number of bytes available 
            int rem_byte = buffInputStr.available(); 
      
            // Byte array is declared 
            byte[] barr = new byte[rem_byte]; 
      
            // Read byte into barr, 
            // starts at offset 1, 
            // 5 bytes to read 
            buffInputStr.read(barr, 1, 5); 
      
            // For each byte in barr 
            for (byte b:barr) { 
                if (b == (byte)0) 
                    b = (byte)'-'; 
                System.out.print((char)b); 
            } 
        } 
    }
    輸入:
    輸出:

參考文獻:
1. https://docs.oracle.com/javase/10/docs/api/java/io/BufferedInputStream.html#read()
2. https://docs.oracle.com/javase/10/docs/api/java/io/BufferedInputStream.html#read(byte%5B%5D, int, int)




相關用法


注:本文由純淨天空篩選整理自pp_pankaj大神的英文原創作品 BufferedInputStream read() method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。