Java Java类
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) 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