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:推回输出流PushbackInputStream和PushbackReader的用法

IO:推回输出流PushbackReader的用法: 下面的程序试图找出程序中的"new PushbackReader"字符串,找到后然后打印出目标字符串之前的内容     package n...

java io系列14之 DataInputStream(数据输入流)的认知、源码和示例

介绍了 DataInputStream 的各个API 的意思,和分析了 readUTFT的执行过程。

java io系列12之 BufferedInputStream(缓冲输入流)的认知、源码和示例

本章内容包括3个部分:BufferedInputStream介绍,BufferedInputStream源码,以及BufferedInputStream使用示例。 转载请注明出处:http://ww...

Java之 BufferedInputStream详解 (缓冲输入流)的认知、源码和示例

本章内容包括3个部分:BufferedInputStream介绍,BufferedInputStream源码,以及BufferedInputStream使用示例。 转载请注明出处:http://...
  • lqhed
  • lqhed
  • 2016年07月13日 19:43
  • 1099

java io系列14之 DataInputStream(数据输入流)的认知、源码和示例

本章介绍DataInputStream。我们先对DataInputStream有个大致认识,然后再深入学习它的源码,最后通过示例加深对它的了解。 转载请注明出处:http://www.cnblogs...

对象输入流的操作

  • 2016年11月15日 22:04
  • 1KB
  • 下载

解释c++的输入输入流 小程序

  • 2015年04月10日 16:57
  • 551KB
  • 下载

InputStream——输入流读取数据缺失或多余现象

写Java、android的程序员应该对InputStream再熟悉不过了。不管是文件操作还是网络传输,只要牵扯到传输数据的时候都难免会用到它。输入流能够快速的读取我们文件 或者网络的数据,但有时候也...

java中的输入流与输出流

  • 2014年05月13日 08:57
  • 204KB
  • 下载

文件字符输入流

  • 2015年01月13日 16:43
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PushbackInputStream(推回输入流) 示例
举报原因:
原因补充:

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