Java中的Java.io.InputStream类

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)
  •   Java I/O总结

    Java中的Java.io.InputStream类

    InputStream类是所有io类的超类,即表示输入的字节流。它代表输入的字节流。定义InputStream的子类的应用程序必须提供方法,返回下一个输入字节。
    调用reset()方法将流重新定位到最近标记的位置。

    public abstract class InputStream
       extends Object
          implements Closeable

    构造函数:

    • InputStream():单个构造函数

    方法:

    • mark():Java.io.InputStream.mark(int arg)标记输入流的当前位置。它设置readlimit,即标记位置变为无效之前可以读取的最大字节数。
      句法 :

      public void mark(int arg)
       参数:
      arg:指定输入流的读取限制的整数
      返回:  
      void
    • read():java.io.InputStream.read()从输入流中读取下一个字节的数据。值字节的返回范围是0到255.如果由于流的末尾已到达而没有可用的字节,则返回值-1。
      句法 :

      public abstract int read()
       参数:
      ------
      返回: 
      否则读取下一个数据,即-1到达文件结束时。
      异常: 
      - >   IOException:如果发生I / O错误。
    • close():java.io.InputStream.close()关闭输入流并将与此流关联的系统资源释放到垃圾收集器。
      句法 :

      public void close()
       参数:
      ------
      返回: 
      空虚
      异常: 
      - >   IOException:如果发生I / O错误。
    • read():Java.io.InputStream.read(byte [] arg)从输入流读取arg.length的字节数到缓冲区数组arg。read()方法读取的字节以int形式返回。如果len为零,则不读取字节并返回0; 否则,尝试读取至少一个字节。
      句法 :

      public int read(byte [] arg)
       参数:
      arg:要读取的字节数的数组
      返回: 
       读取字节数并返回到其他缓冲区,-1即达到文件结束时。
      异常: 
      - >   IOException:如果发生I / O错误。
      - >   NullPointerException:如果arg为null。
    • reset():由mark()方法调用Java.io.InputStream.reset()。它将输入流重新定位到标记位置。
      句法 :

      public void reset()
       参数:
      ----
      返回: 
      空虚
      异常: 
      - >   IOException:如果发生I / O错误。
    • markSupported():Java.io.InputStream.markSupported() 方法测试此输入流是否支持标记和重置方法。InputStream的markSupported方法默认返回false。
      句法 :

      public boolean markSupported()
       参数:
      -------
      返回:  
      如果输入流支持mark()和reset()方法,则返回 true,否则返回 false
    • skip():Java.io.InputStream.skip(long arg) 跳过并放弃输入流中的arg字节。
      句法 :

      公开长跳过(long arg)
       参数:
      arg:不。的字节被跳过
      返回: 
      跳过字节。
      异常: 
      - >   IOException:如果发生I / O错误。

    解释InputStream类方法的Java程序:

    // Java program illustrating the working of InputStream method
    // mark(), read(), skip()
    // markSupported(), close(), reset()
    import java.io.*;
    
    public class NewClass
    {
        public static void main(String[] args) throws Exception
        {
            InputStream geek = null;
            try {
    
                geek = new FileInputStream("ABC.txt");
    
                // read() method : reading and printing Characters
                // one by one
                System.out.println("Char : "+(char)geek.read());
                System.out.println("Char : "+(char)geek.read());
                System.out.println("Char : "+(char)geek.read());
    
                // mark() : read limiing the 'geek' input stream
                geek.mark(0);
    
                // skip() : it results in redaing of 'e' in G'e'eeks
                geek.skip(1);
                System.out.println("skip() method comes to play");
                System.out.println("mark() method comes to play");
                System.out.println("Char : "+(char)geek.read());
                System.out.println("Char : "+(char)geek.read());
                System.out.println("Char : "+(char)geek.read());
    
                boolean check = geek.markSupported();
                if (geek.markSupported())
                {
                    // reset() method : repositioning the stram to
                    // marked positions.
                    geek.reset();
                    System.out.println("reset() invoked");
                    System.out.println("Char : "+(char)geek.read());
                    System.out.println("Char : "+(char)geek.read());
                }
                else
                    System.out.println("reset() method not supported.");
    
    
                System.out.println("geek.markSupported() supported"+
                                  " reset() : "+check);
    
            }
            catch(Exception excpt)
            {
                // in case of I/O error
                excpt.printStackTrace();
            }
            finally
            {
                // releasing the resources back to the
                // GarbageCollector when closes
                if (geek!=null)
                {
                    // Use of close() : closing the file
                    // and releasing resources
                    geek.close();
                }
            }
        }
    }
    

    注意:
    此代码不会在联机IDE上运行,因为此处不存在suc文件。
    你可以在你的系统上运行这个代码来检查工作。代码中使用的ABC.txt文件有

    HelloGeeks

    输出:

    Char : H
    Char : e
    Char : l
    skip() method comes to play
    mark() method comes to play
    Char : o
    Char : G
    Char : e
    reset() method not supported.
    geek.markSupported() supported reset() : false
  •   Java I/O总结
  •   本文标题:Java中的Java.io.InputStream类 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/4313.html

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注