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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。