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


Java PushbackInputStream unread()用法及代碼示例


Java中的PushbackInputStream類的unread()方法具有三種類型:

  1. Java中PushbackInputStream類的unread(int b)方法用於通過將字節複製到推回緩衝區的前麵來推回字節。取消此方法後,讀取下一個字節時,其值等於傳遞的參數。

    用法:

    public void unread(int b)
                throws IOException
    

    參數:該方法接受一個參數b,該參數b表示要推回的整數值。

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

    異常:如果通過調用同一類的close()方法關閉了輸入流,或者如果推回緩衝區中沒有足夠的空間用於該字節,則此方法將引發IOException。



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

    程序1:

    // Java program to illustrate 
    // PushbackInputStream unread(int) method 
      
    import java.io.*; 
      
    public class GFG { 
        public static void main(String[] args) 
            throws IOException 
        { 
      
            // Create an array 
            byte[] byteArray 
                = new byte[] { 'G', 'E', 'E', 
                               'K', 'S' }; 
      
            // Create inputStream 
            InputStream inputStr 
                = new ByteArrayInputStream(byteArray); 
      
            // Create object of 
            // PushbackInputStream 
            PushbackInputStream pushbackInputStr 
                = new PushbackInputStream(inputStr); 
      
            for (int i = 0; i < byteArray.length; i++) { 
                System.out.print( 
                    (char)pushbackInputStr.read()); 
            } 
      
            // Call unread() method 
            pushbackInputStr.unread(65); 
      
            System.out.print( 
                "\n"
                + (char)pushbackInputStr.read()); 
        } 
    }
    輸出:
    GEEKS
    A
    

    程序2:

    // Java program to illustrate 
    // PushbackInputStream unread() method 
      
    import java.io.*; 
      
    public class GFG { 
        public static void main(String[] args) 
            throws IOException 
        { 
      
            // Create an array 
            byte[] byteArray 
                = new byte[] { 'G', 'E', 'E', 'K', 'S', 
                               'F', 'O', 'R', 'G', 'E', 
                               'E', 'K', 'S' }; 
      
            // Create inputStream 
            InputStream inputStr 
                = new ByteArrayInputStream(byteArray); 
      
            // Create object of 
            // PushbackInputStream 
            PushbackInputStream pushbackInputStr 
                = new PushbackInputStream(inputStr); 
      
            for (int i = 0; i < byteArray.length; i++) { 
                System.out.print( 
                    (char)pushbackInputStr.read()); 
            } 
      
            // Call unread() method 
            pushbackInputStr.unread(90); 
      
            System.out.print( 
                "\n"
                + (char)pushbackInputStr.read()); 
        } 
    }
    輸出:
    GEEKSFORGEEKS
    Z
    
  2. Java中PushbackInputStream類的unread(byte [] b)方法用於通過將字節數組複製到推回緩衝區的前麵來推回字節數組。取消此方法後,讀取下一個字節時,其值等於字節數組的第一個元素。

    用法:

    public void unread(byte[] b)
                throws IOException
    

    參數:該方法接受一個參數b,該參數b表示要回退的字節數組。

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



    異常:如果通過調用同一類的close()方法關閉了輸入流,或者如果推回緩衝區中沒有足夠的空間用於數組字節,則此方法將引發IOException。

    以下示例程序旨在說明IO包中PushbackInputStream類的unread(byte [])方法:

    程序1:

    // Java program to illustrate 
    // PushbackInputStream unread(byte[]) method 
      
    import java.io.*; 
      
    public class GFG { 
        public static void main(String[] args) 
            throws IOException 
        { 
      
            // Create an array 
            byte[] byteArray 
                = new byte[] { 'G', 'E', 'E', 
                               'K', 'S' }; 
      
            // Create inputStream 
            InputStream inputStr 
                = new ByteArrayInputStream(byteArray); 
      
            // Create object of 
            // PushbackInputStream 
            PushbackInputStream pushbackInputStr 
                = new PushbackInputStream(inputStr, 100); 
      
            for (int i = 0; i < byteArray.length; i++) { 
                System.out.print( 
                    (char)pushbackInputStr.read()); 
            } 
      
            // Create byte array 
            byte[] b = new byte[] { 'A', 'B', 'C' }; 
      
            // Call unread() method 
            pushbackInputStr.unread(b); 
      
            System.out.println(); 
      
            for (int i = 0; i < b.length; i++) { 
                System.out.print( 
                    (char)pushbackInputStr.read()); 
            } 
        } 
    }
    輸出:
    GEEKS
    ABC
    

    程序2:

    // Java program to illustrate 
    // PushbackInputStream unread(byte[]) method 
      
    import java.io.*; 
      
    public class GFG { 
        public static void main(String[] args) 
            throws IOException 
        { 
      
            // Create an array 
            byte[] byteArray 
                = new byte[] { 'G', 'E', 'E', 'K', 'S', 
                               'F', 'O', 'R', 'G', 'E', 
                               'E', 'K', 'S' }; 
      
            // Create inputStream 
            InputStream inputStr 
                = new ByteArrayInputStream(byteArray); 
      
            // Create object of 
            // PushbackInputStream 
            PushbackInputStream pushbackInputStr 
                = new PushbackInputStream(inputStr, 100); 
      
            for (int i = 0; i < byteArray.length; i++) { 
                System.out.print( 
                    (char)pushbackInputStr.read()); 
            } 
      
            // Create byte array 
            byte[] b = new byte[] { 'X', 'Y', 'Z' }; 
      
            // Call unread() method 
            pushbackInputStr.unread(b); 
      
            System.out.println(); 
      
            for (int i = 0; i < b.length; i++) { 
                System.out.print( 
                    (char)pushbackInputStr.read()); 
            } 
        } 
    }
    輸出:
    GEEKSFORGEEKS
    XYZ
    
  3. Java中的PushbackInputStream類的unread(byte [] b,int偏移量,int長度)方法用於通過將字節數組的一部分複製到推回緩衝區的前麵來推回一部分字節數組。取消此方法後,當讀取下一個字節時,其值等於給定字節數組部分的第一個元素。

    用法:

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

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

    • b-它表示要推送其一部分的字節數組。
    • offset-它表示字節數組部分的起始索引。
    • length-它表示要推送的字節數。

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

    異常:如果通過調用同一類的close()方法關閉了輸入流,或者如果推回緩衝區中沒有足夠的空間用於數組字節,則此方法將引發IOException。



    以下示例程序旨在說明IO包中PushbackInputStream類的unread(byte [],int,int)方法:

    程序1:

    // Java program to illustrate 
    // PushbackInputStream 
    // unread(byte[], int, int) method 
      
    import java.io.*; 
      
    public class GFG { 
        public static void main(String[] args) 
            throws IOException 
        { 
      
            // Create an array 
            byte[] byteArray 
                = new byte[] { 'G', 'E', 'E', 
                               'K', 'S' }; 
      
            // Create inputStream 
            InputStream inputStr 
                = new ByteArrayInputStream(byteArray); 
      
            // Create object of 
            // PushbackInputStream 
            PushbackInputStream pushbackInputStr 
                = new PushbackInputStream(inputStr, 100); 
      
            for (int i = 0; i < byteArray.length; i++) { 
                System.out.print( 
                    (char)pushbackInputStr.read()); 
            } 
      
            // Create byte array 
            byte[] b 
                = new byte[] { 'A', 'B', 'C', 
                               'D', 'E' }; 
      
            // Call unread() method 
            pushbackInputStr.unread(b, 2, 3); 
      
            System.out.println(); 
      
            for (int i = 0; i < 3; i++) { 
                System.out.print( 
                    (char)pushbackInputStr.read()); 
            } 
        } 
    }
    輸出:
    GEEKS
    CDE
    

    程序2:

    // Java program to illustrate 
    // PushbackInputStream 
    // unread(byte[], int, int) method 
      
    import java.io.*; 
      
    public class GFG { 
        public static void main(String[] args) 
            throws IOException 
        { 
      
            // Create an array 
            byte[] byteArray 
                = new byte[] { 'G', 'E', 'E', 'K', 'S', 
                               'F', 'O', 'R', 'G', 'E', 
                               'E', 'K', 'S' }; 
      
            // Create inputStream 
            InputStream inputStr 
                = new ByteArrayInputStream(byteArray); 
      
            // Create object of 
            // PushbackInputStream 
            PushbackInputStream pushbackInputStr 
                = new PushbackInputStream(inputStr, 100); 
      
            for (int i = 0; i < byteArray.length; i++) { 
                System.out.print( 
                    (char)pushbackInputStr.read()); 
            } 
      
            // Create byte array 
            byte[] b = new byte[] { 'W', 'X', 'Y', 'Z' }; 
      
            // Call unread() method 
            pushbackInputStr.unread(b, 1, 3); 
      
            System.out.println(); 
      
            for (int i = 0; i < 3; i++) { 
                System.out.print( 
                    (char)pushbackInputStr.read()); 
            } 
        } 
    }
    輸出:
    GEEKSFORGEEKS
    XYZ
    

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




相關用法


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