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;否则, 返回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)
跳过并丢弃
输入流中的字节数。
句法 :
public long skip(long arg)
Parameters :
arg : no. of bytes to be skipped
Return :
skip bytes.
Exception :
-> IOException : If I/O error occurs.
Java程序解释InputStream类方法:
// 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();
}
}
}
}
注意 :
由于此处没有suc文件, 因此该代码无法在在线IDE上运行。
你可以在系统上运行此代码以检查其工作情况。
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
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。