`
XiAoOMAn07
  • 浏览: 75658 次
  • 性别: Icon_minigender_1
  • 来自: 温州
社区版块
存档分类
最新评论

JAVA IO中的mark reset

阅读更多
mark就像书签一样,在这个BufferedReader对应的buffer里作个标记,以后再调用reset时就可以再回到这个mark过的地方。mark方法有个参数,通过这个整型参数,你告诉系统,希望在读出这么多个字符之前,这个mark保持有效。读过这么多字符之后,系统可以使mark不再有效,而你不能觉得奇怪或怪罪它。这跟buffer有关,如果你需要很长的距离,那么系统就必须分配很大的buffer来保持你的mark。   
    //eg.   
    //reader      is      a      BufferedReader   
     
    reader.mark(50);//要求在50个字符之内,这个mark应该保持有效,系统会保证buffer至少可以存储50个字符   
    int      a      =      reader.read();//读了一个字符   
    int      b      =      reader.read();//又读了一个字符   
     
    //做了某些处理,发现需要再读一次   
    reader.reset();   
    reader.read();//读到的字符和a相同   
    reader.read();//读到的字符和b相同





例子:
public static void main(String[] args) throws IOException {
  String s = "This is a &aa not.\n";
  byte buf[] = s.getBytes();
  ByteArrayInputStream in = new ByteArrayInputStream(buf);
  BufferedInputStream f = new BufferedInputStream(in);
  int c;
  boolean marked = false;
  while ((c = f.read()) != -1) {

   switch (c) {

   case '&':
    if (!marked) {
     f.mark(1);// 为什么mark里放任何值结果都一样
     marked = true;
    } else {
     marked = false;
    }
    break;

   case ' ':
    if (marked) {

     f.reset();
     System.out.print("&");
    } else
     System.out.print((char) c);
    break;

   default:
    if (marked)
     System.out.print((char) c);
    break;
   }

  }
 }



分享到:
评论

相关推荐

    java中的io流详解

    Java 中的 IO 流详解 Java 中的 IO 流是指在 Java 语言中对输入输出操作的抽象,主要用于实现程序与外部设备和其他计算机之间的交流,尤其是对磁盘文件的操作。IO 流的概念是在 1984 年由 C 语言第一次引入的,后来...

    Java IO, NIO and NIO.2

    Java IO、NIO以及NIO.2是Java中用于处理输入/输出操作的三种主要机制。本书《Java IO, NIO and NIO.2》旨在深入浅出地介绍这些机制,同时书中内容均为英文。接下来将详细介绍这些知识点。 **Java IO** Java IO是...

    java_IO流的处理.ppt

    Java IO流处理是Java编程中一个非常重要的概念,它用于在不同数据源之间传输数据,如文件、网络、内存等。在Java中,IO流分为两大类:输入流(Input Stream)和输出流(Output Stream),它们分别用于数据的读取和...

    JAVA IO 输入输出处理.ppt

    Java IO 输入输出处理是Java编程中至关重要的一部分,用于在程序和外部资源(如磁盘、网络、内存等)之间传输数据。Java的IO系统由java.io包提供,它包含了一系列的类和接口,用于实现不同类型的输入输出操作。 **...

    java第4章 JAVA IO流

    Java IO流是Java编程语言中一个非常重要的概念,它提供了数据传输和转换的机制,使得程序可以读取、写入各种类型的数据,如文件、网络、内存缓冲等。在Java第4章中,我们通常会深入学习IO流的体系结构、分类、基本...

    java io流-3.pdf

    - **3.7 标记和重置**:`mark()`和`reset()`方法允许程序记住流的位置,并能够在之后重置到该位置。 - **3.8 自定义InputStream子类**:通过继承`InputStream`类可以创建自定义的输入流实现。 - **3.9 高效流复制器*...

    java jdk io包类详解

    通过对`java.io`包中的类和接口的学习,我们不仅能够深入了解Java中基础输入输出流的实现原理,还能够掌握如何高效地处理文件和其他数据流。这对于日常的软件开发工作是非常有用的。此外,通过理解装饰者模式的应用...

    java的IO操作常规

    例如,代码中的"d://java/io/TestFileInputStream.java",使用的是绝对路径。在实际开发中,根据不同的操作系统和环境,可能需要使用相对路径或者不同方式来指定文件路径,以适应不同的部署环境。 以上知识点详细...

    java io 2nd

    - **标记与重置**:一些`InputStream`子类支持标记(`mark()`)和重置(`reset()`)功能,允许你重新读取之前已经读取的数据。 - **高效的流复制**:`ByteArrayInputStream`和`ByteArrayOutputStream`可用于在内存...

    李兴华 Java IO笔记

    - `void reset()`:将流重新定位到上次调用mark()方法的位置。 #### OutputStream方法 与InputStream相对应,OutputStream提供了以下几种写入方法: - `void write()`:基础的写入方法,具体实现取决于子类。 - `...

    Java IO.pdf

    - **标记和重置**:通过 `mark` 和 `reset` 方法支持流的回溯操作。 #### 七、文件流(File Streams) - **文件读取**:使用 `FileInputStream` 和 `FileReader` 分别以字节和字符方式读取文件。 - **文件写入**:...

    JAVA IO-(FileBuffered的InputOutputStream的基本操作)

    在Java编程语言中,IO(Input/Output)流是处理数据输入和输出的关键部分,而FileInputStream和FileOutputStream是Java IO中的基础类,用于读写文件。为了提高效率,我们通常会结合BufferedInputStream和...

    JavaSE_4_JavaIO操作_3

    本篇主要介绍Java中的IO操作中的类层次结构以及缓冲流的使用。 #### 类层次结构 Java IO体系主要通过一系列抽象类和接口构建而成,形成了丰富的类层次结构。这种结构不仅方便了程序员理解和使用,也极大地扩展了...

    Java-IO流.pdf

    Java的IO流是Java平台核心特性之一,用于处理程序中的数据输入和输出。在Java中,流被定义为一组有序的数据序列,可以是字节流或字符流。字节流处理的数据最小单位是字节,而字符流处理的是Unicode字符。 Java I/O...

    JAVAIO流学生课件PPT教案学习.pptx

    此外,InputStream还提供了close()来关闭流,available()返回可读取的字节数,skip(long n)跳过指定数量的字节,markSupported()检查是否支持标记功能,mark(int readlimit)设置标记,reset()则恢复到之前设定的标记...

    JAVAIO流学生PPT教案学习.pptx

    Java的`java.io`包包含了各种流类型,包括输入流、输出流、字节流和字符流,以及节点流和处理流。 **流的分类:** 1. **按方向分:** - **输入流(InputStream/Reader)**:只能用于读取数据,不能写入。 - **...

    Java IO学习之缓冲输入流(BufferedInputStream)

    Java IO中的BufferedInputStream是Java I/O流处理中非常重要的一部分,它属于过滤输入流(FilterInputStream)的一个子类。BufferedInputStream的主要目的是提高输入流的读取效率,通过内部维护一个缓冲区来批量处理...

    完整版 杭州电子科技大学JAVA语言程序设计 JAVA_07 IO输入输出(共30页).ppt

    Java语言中的IO输入输出是程序与外部数据交互的重要机制,主要涉及文件操作、流的概念以及相关的类和接口。本部分讲解的是杭州电子科技大学JAVA语言程序设计课程中的第七章,即"文件I/O输入/输出"。 1. **File类**...

    Java-IO流.docx

    Java的IO流是Java编程中用于处理输入输出操作的核心机制。在Java中,流是一组有序的数据序列,可以是字节或字符,用于在不同数据源之间传输数据。流主要分为两大类:输入流(Input Stream)和输出流(Output Stream...

    IO流文档InputStream / OutputStream

    在IO流中, mark()和reset()方法用于标记流中的位置,skip()方法用于跳过流中的某些字节,而available()方法用于获取流中的可用字节数。close()方法用于关闭流,释放系统资源。 在Java中,IO流还可以用于实现对象...

Global site tag (gtag.js) - Google Analytics