Java Reader
类
原文:https://www.studytonight.com/java-file-io/java-reader-class
在本教程中,我们将学习 Java 中的Reader
类。这是一个抽象类,对于读取字符流非常有用。我们不能直接使用这个类,但是这个类的子类非常有用。
读者类的子类
- 类
- 类
- 档案管理员
- 档案管理员
- StringReader
构造器
下面给出了这个类的构造器的所有变体。
构造器 | 描述 |
---|---|
protected Reader() |
它创建了一个新的字符流读取器,其关键部分将在读取器上同步。 |
protected Reader(Object lock) |
它创建了一个新的字符流读取器,其关键部分将在给定的对象上同步。 |
方法
Reader
类支持的方法如下。
方法 | 描述 |
---|---|
abstract void close() |
此方法关闭流并释放与其关联的任何系统资源。 |
void mark(int readAheadLimit) |
此方法标记流中的当前位置。 |
boolean markSupported() |
此方法告知此流是否支持 mark()操作。 |
int read() |
此方法读取单个字符。 |
int read(char[] cbuf) |
此方法将字符读入数组。 |
abstract int read(char[] cbuf, int off, int len) |
此方法将字符读入数组的一部分。 |
int read(CharBuffer target) |
此方法尝试将字符读入指定的字符缓冲区。 |
boolean ready() |
这个方法告诉这个流是否准备好被读取。 |
void reset() |
此方法重置流。 |
long skip(long n) |
此方法跳过字符。 |
例子
在下面的例子中,我们使用Reader
类读取数据。首先,我们使用FileReader
类创建了一个读取器对象,然后使用 read()方法读取数据。
package studytonight;
import java.io.FileReader;
import java.io.Reader;
public class StudyTonight
{
public static void main(String args[])
{
try
{
Reader reader = new FileReader("E:\\studytonight\\output.txt");
int data = reader.read();
while (data != -1) {
System.out.print((char) data);
data = reader.read();
}
}
catch(Exception e)
{
System.out.println("Error: "+e.toString());
}
}
}
你好,今晚学习
输出. txt
Hello Studytonight
使用Reader
类读取字符数组
在下面的示例中,我们使用 read()方法从文件中读取数据,该方法接受 char 数组作为具有起始偏移量和长度的参数。基本上,我们读取数据并将其存储在字符数组中。
package studytonight;
import java.io.FileReader;
import java.io.Reader;
public class StudyTonight
{
public static void main(String args[])
{
try
{
Reader reader = new FileReader("E:\\studytonight\\output.txt");
char[] array = new char[128];
int charsRead = reader.read(array, 0, array.length);
while(charsRead != -1) {
System.out.println(new String(array, 0, charsRead));
charsRead = reader.read(array, 0, array.length);
}
}
catch(Exception e)
{
System.out.println("Error: "+e.toString());
}
}
}
你好,今晚学习
输出. txt
Hello Studytonight
结论:
在本教程中,我们学习了 Java 中的Reader
类。这个类是所有Reader
子类的基类。这个类像输入流一样工作,唯一的区别是它是基于字符的,而不是基于字节的。