PushbackInputStream(推回输入流) 示例

原创 2006年06月21日 20:07:00
/*
缓冲的一个新颖的用法是实现推回(pushback)。Pushback用于输入流允许字节被读取然后返回(即“推回”)到流。PushbackInputStream类实现了这个想法。它提供了一种机制来“窥视”在没有受到破坏的情况下输入流生成了什么。
PushbackInputStream有两个构造函数:
PushbackInputStream(InputStream inputStream)
PushbackInputStream(InputStream inputStream, int numBytes)
第一种形式创建了一个允许一个字节推回到输入流的流对象。第二种形式创建了一个具有numBytes长度缓冲区的推回缓冲流。它允许多个字节推回到输入流。除了具有与InputStream相同的方法,PushbackInputStream提供了unread( )方法,表示如下:
void unread(int ch)
void unread(byte buffer[ ])
void unread(byte buffer, int offset, int numChars)
第一种形式推回ch的低位字节,它将是随后调用read( )方法所返回的下一个字节。第二种形式返回buffer缓冲器中的字节。第三种形式推回buffer中从offset处开始的numChars个字节。如果在推回缓冲器为满时试图返回一个字节,IOException异常将被引发。Java 2 对PushbackInputStream作了一些小的修改:它实现skip( )方法。
*/

// Demonstrate unread().
import java.io.*;
class PushbackInputStreamDemo{
 public static void main(String[] args) throws IOException{
  String s = "if (a == 4) a = 0;/n";
  byte buf[] = s.getBytes();
  ByteArrayInputStream in = new ByteArrayInputStream(buf);
  PushbackInputStream f = new PushbackInputStream(in);
  int c;
  while((c=f.read()) !=-1){
   switch(c){
    case '=':
    if((c=f.read())=='='){
     System.out.print(".eq.");
    }else{
     System.out.print("<-");
     f.unread(c);
    }
    break;
    default:
    System.out.print((char)c);
    break;
   }
  }
 }
}

io流常用方法学习总结(一)

io流 常用方法总结            按照流的流向  分为输入流 输出流      按照流的角色 分为节点流 处理流       节点流:向一个特定的io设备(磁盘,网络)读写 ...
  • qq_33556223
  • qq_33556223
  • 2018年01月09日 21:10
  • 47

Java IO学习

一、Java IO   Java 的IO包含了java的输入输出,所有的类都在java.io包中。其主要内容就是java的输入输出流,又可以分为字符流和字节流。其中字符流以字符来处理输入输出操作,字...
  • ahafg
  • ahafg
  • 2016年04月22日 22:02
  • 1985

IO:推回输出流PushbackInputStream和PushbackReader的用法

IO:推回输出流PushbackReader的用法: 下面的程序试图找出程序中的"new PushbackReader"字符串,找到后然后打印出目标字符串之前的内容     package n...
  • ma451152002
  • ma451152002
  • 2013年09月22日 16:16
  • 5966

java PushbackInputStream/Reader推回输入流

PushbackInputStream和PushbackReader: void unread(byte[]/char[] b):将一个字节/字符数组内容推回到推回缓冲区里,从而允许重复读取刚刚读取...
  • u013420428
  • u013420428
  • 2017年11月05日 18:10
  • 52

初学Java,IO之推回输入流(四十四)

5月结婚的关系,这个月都没有时间翻一下书,学习一下Java,有损我学习Android的进度了,现在好不容易有了闲暇时间,马上来拉一下学习进度,呵呵~推回输入流是什么,我一开始看名字就有点费解,看了几个...
  • lee576
  • lee576
  • 2012年05月16日 14:33
  • 2091

推回输入流

研究了一下,不是很明白在 package iodemo; import java.io.ByteArrayInputStream; import java.io.IOException;...
  • ChouYaChouJi
  • ChouYaChouJi
  • 2013年10月31日 18:12
  • 696

[疯狂Java]I/O:转换流、BufferedReader简介、回推输入流

1. 将字节流转换成字符流:     1) Java只提供了将字节流转换成字符流的方法,但是并没有提供字符流转换成字节流的方法。这是因为字符流要比字节流操作更加方便、直观,毕竟字符是人直接能看得懂的;...
  • Lirx_Tech
  • Lirx_Tech
  • 2016年04月22日 15:20
  • 1119

pushbackInputStream回退输入流

1.  Java.io.PushbackInputStream拥有一个PushBack缓冲区,从PushbackInputStream读出数据后,只要PushBack缓冲区没有满,就可以使用unrea...
  • jiangzhongwei_
  • jiangzhongwei_
  • 2016年07月31日 10:58
  • 982

Java IO操作——回退流PushbackInputStream

学习目标:  掌握回退流的工作原理 使用PushbackInputStream完成回退操作 回退:给了用户第二次读的机会。 回退流 在JAVA IO中所有的数据都是采用顺序的读取方式,即对于一个输...
  • u013087513
  • u013087513
  • 2016年08月10日 15:49
  • 4005

15.4.4 推回输入流

import java.io.FileReader; import java.io.PushbackReader; public class PushbackTest { public stat...
  • weixin_40857816
  • weixin_40857816
  • 2017年10月30日 20:13
  • 30
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PushbackInputStream(推回输入流) 示例
举报原因:
原因补充:

(最多只允许输入30个字)