Java InputStreamReader.getEncoding()方法

原文:https://www.studytonight.com/java-file-io/inputstreamreader-getencoding-method-in-java

在本教程中,我们将学习 JavaInputStreamReader 类的getEncoding()方法。此方法提供当前流使用的字符编码的名称。如果流使用的是历史编码名称,它将返回该名称,否则,它将返回流的规范编码名称。

句法

下面是这个方法的语法声明。它不接受任何参数,并返回编码、历史或规范、流使用的名称,如果流关闭,则返回空值。

public String getEncoding()

示例 1:用 Java 编码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

示例 2:用 Java 编码InputStreamReader

。如果我们没有为流设置编码,那么这个方法将返回默认的编码,在这个例子中,我们没有设置任何编码,但是它返回了Cp1252 ,因为它被默认分配给了流。

import java.io.FileInputStream;
import java.io.InputStreamReader;
public class StudyTonight 
{
    public static void main(String args[])
    {
        try
        {  
            FileInputStream file = new FileInputStream("E:\\studytonight\\output.txt");  
            InputStreamReader reader = new InputStreamReader(file);              
            System.out.println("Character Encoding of the reader is: "+reader.getEncoding());
        }
        catch (Exception e)    
        {  
            System.out.print("Error: "+e.toString());
        }  
    }
}

读取器的字符编码为:Cp1252

结论

在本教程中,我们将学习 JavaInputStreamReader 类的getEncoding()方法,该方法用于获取流使用的字符编码,该编码可能是历史的,也可能是规范的,具体取决于此。