Java FilterReader.reset()
方法
原文:https://www.studytonight.com/java-file-io/java-filterreader-reset-method
在本教程中,我们将学习 Java 中 FilterReader 类的reset()
方法。调用此方法将流重置到最近调用mark()
方法的位置。这是一个非静态方法,在 java.io 包中可用,只能用类对象访问,否则用类名访问会抛出IOException
。
句法
这是此方法的语法声明。它不接受任何参数或返回任何值,因为它的返回类型是 void。
public void reset()
示例 1:在 Java 中重置 FilterReader
在本例中,我们将说明 reset()
方法的使用,该方法将流的当前读取位置移动到最近标记的位置。在这里,我们首先检查这个流是否支持 mark()方法和标记流开头的位置,然后我们读取前五个字符,然后我们调用 reset()方法,这样当我们调用 reset()方法时,它会将指针移动到流的初始位置,并再次从流的开头开始读取。
import java.io.FilterReader;
import java.io.Reader;
import java.io.StringReader;
public class StudyTonight
{
public static void main(String args[])
{
try
{
Reader reader = new StringReader("Hello Studytonight");
FilterReader fileReader = new FilterReader(reader){};
char ch[] = new char[8];
if(fileReader.markSupported())
{
fileReader.mark(100);
}
fileReader.read(ch);
for (int i = 0; i < 5; i++)
{
System.out.print(ch[i]);
}
fileReader.reset();
for (int i = 0; i <5 ; i++)
{
System.out.print((char)fileReader.read());
}
fileReader.close();
}
catch(Exception e)
{
System.out.print("Error: "+e.toString());
}
}
}
地狱深渊
示例 1:在 Java 中重置 FilterReader
如果我们一个接一个地调用 mark()和 reset()方法,那么显然它们不会显示任何效果,因为最近标记的位置和当前的读取位置是相同的。在这种情况下,它将继续从当前位置读取。
import java.io.FilterReader;
import java.io.Reader;
import java.io.StringReader;
public class StudyTonight
{
public static void main(String args[])
{
try
{
Reader reader = new StringReader("Hello Studytonight");
FilterReader fileReader = new FilterReader(reader){};
for (int i = 0; i <5 ; i++)
{
System.out.print((char)fileReader.read());
}
if(fileReader.markSupported())
{
fileReader.mark(100);
}
fileReader.reset();
for (int i = 0; i <14; i++)
{
System.out.print((char)fileReader.read());
}
fileReader.close();
}
catch(Exception e)
{
System.out.print("Error: "+e.toString());
}
}
}
你好,今晚学习
结论
在本教程中,我们学习了 Java 中 FilterReader 类的reset()
方法,该方法用于将流重置到最近调用mark()
方法的位置。