Java.io.FilterReader.mark() 方法


Java.io.FilterReader.mark() 方法

package com.codingdict;



import java.io.FilterReader;

import java.io.IOException;

import java.io.Reader;

import java.io.StringReader;



public class FilterReaderDemo {



   public static void main(String[] args) throws Exception {

      FilterReader fr = null;

      Reader r = null;      



      try {



         // create new reader

         r = new StringReader("ABCDEF");



         // create new filter reader

         fr = new FilterReader(r) {

         };



         // reads and prints FilterReader

         System.out.println((char)fr.read());

         System.out.println((char)fr.read());



         // mark invoked at this position

         fr.mark(0);

         System.out.println("mark() invoked");

         System.out.println((char)fr.read());

         System.out.println((char)fr.read());



         // reset() repositioned the stream to the mark

         fr.reset();

         System.out.println("reset() invoked");

         System.out.println((char)fr.read());

         System.out.println((char)fr.read());



      } catch(IOException e) {



         // if any I/O error occurs

         e.printStackTrace();

      } finally {



         // releases system resources associated with this stream

         if(r!=null)

            r.close();

         if(fr!=null)

            fr.close();

      }

   }

}