📜  Java Java类

📅  最后修改于: 2022-05-13 01:55:32.973000             🧑  作者: Mango

Java Java类

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

public abstract class InputStream
   extends Object
      implements Closeable

构造函数:

  • InputStream() : 单个构造函数

方法:
Java 中的 InputStream 类。

  • mark() : Java.io.InputStream.mark(int arg)标记输入流的当前位置。它设置readlimit,即在标记位置无效之前可以读取的最大字节数。
    句法 :
    public void mark(int arg)
    Parameters :
    arg : integer specifying the read limit of the input Stream
    Return : 
    void
  • read() : Java.io.InputStream.read()从输入流中读取下一个字节的数据。返回值字节在 0 到 255 的范围内。如果由于已到达流的末尾而没有可用的字节,则返回值 -1。
    句法 :
    public abstract int read()
    Parameters :
    ------
    Return : 
    Reads next data else, -1 i.e. when end of file is reached.
    Exception :
    ->  IOException : If I/O error occurs.
  • close() : Java.io.InputStream.close()关闭输入流并将与该流关联的系统资源释放到垃圾收集器。
    句法 :
    public void close()
    Parameters :
    ------
    Return : 
    void
    Exception :
    ->  IOException : If I/O error occurs.
  • read() : Java.io.InputStream.read(byte[] arg)从输入流中读取 arg.length 的字节数到缓冲区数组 arg。 read() 方法读取的字节以 int 形式返回。如果 len 为零,则不读取任何字节并返回 0;否则,将尝试读取至少一个字节。
    句法 :
    public int read(byte[] arg)
    Parameters :
    arg : array whose number of bytes to be read
    Return : 
     reads number of bytes and return to the buffer else, -1 i.e. when end of file is reached.
    Exception :
    ->  IOException : If I/O error occurs.
    ->  NullPointerException : if arg is null.
  • reset() : Java.io.InputStream.reset()由 mark() 方法调用。它将输入流重新定位到标记的位置。
    句法 :
    public void reset()
    Parameters :
    ----
    Return : 
    void
    Exception :
    ->  IOException : If I/O error occurs.
  • markSupported() : Java.io.InputStream.markSupported()方法测试此输入流是否支持 mark 和 reset 方法。 InputStream 的 markSupported 方法默认返回 false。
    句法 :
    public boolean markSupported()
    Parameters :
    -------
    Return : 
    true if input stream supports the mark() and reset() method  else,false
  • skip() : Java.io.InputStream.skip(long arg)跳过并丢弃输入流中的arg字节。
    句法 :
    public long skip(long arg)
    Parameters :
    arg : no. of bytes to be skipped
    Return : 
    skip bytes.
    Exception :
    ->  IOException : If I/O error occurs.

    解释 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