Java OutputStreamWriter getEncoding()方法及示例
OutputStreamWriter类getEncoding()方法
getEncoding()方法在java.io包中可用。
getEncoding()方法用于获取此流使用的字符编码,如果存在,则返回字符编码的历史名称,否则返回字符编码的规范名称。
getEncoding()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
返回编码方案时,getEncoding()方法可能会引发异常。
IOException:在执行过程中遇到任何输入/输出错误时,可能引发此异常。
语法:
public String getEncoding();
参数:
它不接受任何参数。
返回值:
该方法的返回类型为String,它返回流使用的此编码的历史名称,否则返回规范名称,或者可以返回null(该流已关闭)。
示例
//Java程序演示示例
//字符串getEncoding()方法
//的OutputStreamWriter-
import java.io.*;
public class GetEncodingOfOSW {
public static void main(String[] args) throws Exception {
OutputStream os_stm = null;
OutputStreamWriter osw_stm = null;
InputStream is_stm = null;
int val = 65;
try {
//实例化FileOutputStream和
//FileInputStream和OutputStreamWriter-
os_stm = new FileOutputStream("D:\\includehelp.txt");
osw_stm = new OutputStreamWriter(os_stm);
//循环将字节写入流
for (int i = 0; i < 3; ++i) {
osw_stm.write(val);
val++;
}
//通过使用flush()方法是
//冲洗流
osw_stm.flush();
System.out.println("Stream Flushed...");
//通过使用getEncoding()方法是
//获取此流的编码方案
String encoding = osw_stm.getEncoding();
System.out.println("osw_stm.getEncoding(): " + encoding);
is_stm = new FileInputStream("D:\\includehelp.txt");
//循环从流中读取字节
for (int i = 0; i < 3; ++i) {
char ch = (char) is_stm.read();
System.out.println("ch: " + ch);
}
osw_stm.close();
System.out.println("Stream Closed Successfully....");
} catch (Exception ex) {
System.out.println(ex.toString());
} finally {
//借助此块可以
//释放所有链接的必要资源
//与流
if (is_stm != null) {
is_stm.close();
if (os_stm != null) {
os_stm.close();
}
}
}
}
}输出结果
Stream Flushed... osw_stm.getEncoding(): Cp1252 ch: A ch: B ch: C Stream Closed Successfully....