Java InputStreamReader
原文:https://www.studytonight.com/java-file-io/java-inputstreamreader
在本教程中,我们将学习 Java 中的InputStreamReader
类。这个类扩展了一个抽象类Reader
。这个类将数据从字节格式转换成字符。
构造器
下表给出了InputStreamReader
类支持的构造器的所有变体。
构造器 | 描述 |
---|---|
InputStreamReader(InputStream in) |
此方法创建一个使用默认字符集的 InputStreamReader。 |
InputStreamReader(InputStream in, Charset cs) |
此方法创建一个使用给定字符集的 InputStreamReader。 |
InputStreamReader(InputStream in, CharsetDecoder dec) |
此方法创建一个使用给定字符集解码器的 InputStreamReader。 |
InputStreamReader(InputStream in, String charsetName) |
此方法创建一个使用命名字符集的 InputStreamReader。 |
方法
InputStreamReader
类的方法如下表所示:
方法 | 描述 |
---|---|
无效关闭() | 此方法关闭流并释放与其关联的任何系统资源。 |
String getEncoding() | 此方法返回此流使用的字符编码的名称。 |
int read() | 此方法读取单个字符。 |
int read(char[] cbuf, int offset, int length) |
此方法将字符读入数组的一部分。 |
布尔就绪() | 这个方法告诉这个流是否准备好被读取。 |
例 1
在下面的例子中,我们实现了InputStreamReader
从文件中读取数据。首先,我们通过在构造器中传递文件路径,使用 FileInputStream 类创建了一个输入流。然后使用 read()方法,我们逐个读取每个字符,直到流到达末尾。当我们到达流的末尾时,它返回-1。
package studytonight;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
public class StudyTonight
{
public static void main(String args[])
{
try {
InputStream stream = new FileInputStream("E:\\studytonight\\output.txt");
Reader reader = new InputStreamReader(stream);
int data = reader.read();
while (data != -1) {
System.out.print((char) data);
data = reader.read();
}
} catch (Exception e) {
System.out.print("Error: "+e.toString());
}
}
}
你好,今晚学习
输出. txt
Hello Studytonight
InputStreamReader
示例
在这个例子中,我们正在学习InputStreamReader
课的 getEncoding()
方法。此方法将返回给定InputStreamReader
的字符编码。如果在这种情况下没有明确提到编码,它将返回默认编码。在这个例子中,我们将编码设置为 UTF8,我们可以在输出中看到它
package studytonight;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
public class StudyTonight
{
public static void main(String args[])
{
try{
FileInputStream file = new FileInputStream("E:\\studytonight\\output.txt");
InputStreamReader reader = new InputStreamReader(file, Charset.forName("UTF8"));
System.out.println("Character Encoding of the reader is: "+reader.getEncoding());
}
catch (Exception e) {
System.out.print("Error: "+e.toString());
}
}
}
读取器的字符编码为:UTF8
结论
在本教程中,我们学习了InputStreamReader
类及其方法,该类将数据从字节格式转换为字符。