黑马程序员技术交流社区

标题: 如何得到一个文件的编码方式 [打印本页]

作者: hello_world!    时间: 2012-10-21 12:32
标题: 如何得到一个文件的编码方式
在毕老师讲的IO流中,他说过转换流是可以指定一个文件的编码方式的。这里就不详细说了。但是,我现在想打开一个任意文本文件,怎样得到这个文本文件的编码方式呢?
作者: 陈琦    时间: 2012-10-21 12:39
个人感觉:如果你不指定字符编码,它默认以电脑当前语言的编码打开,所以你打开任意文本文件的编码,就是当前电脑的编码。
作者: 陈琦    时间: 2012-10-21 12:41
刚找到一方法,是FileReader的方法:::public String getEncoding()
返回此流使用的字符编码的名称。
如果该编码有历史上用过的名称,则返回该名称;否则返回该编码的规范化名称。

如果使用 InputStreamReader(InputStream, String) 构造方法创建此实例,则返回的由此编码生成的唯一名称可能与传递给该构造方法的名称不一样。如果流已经关闭,则此方法可能返回 null。

返回:
此编码的历史名称,如果流已经关闭,则可能返回 null
作者: hello_world!    时间: 2012-10-21 12:55
陈琦 发表于 2012-10-21 12:39
个人感觉:如果你不指定字符编码,它默认以电脑当前语言的编码打开,所以你打开任意文本文件的编码,就是当 ...

所以,如果要正确的打开一个文本文件,首先就要得到它的编码方式啊。所以我想得到文件的编码方式
作者: hello_world!    时间: 2012-10-21 13:06
陈琦 发表于 2012-10-21 12:41
刚找到一方法,是FileReader的方法:::public String getEncoding()
返回此流使用的字符编码的名称。
如 ...

public String getEncoding()这个方法不行。
FileReader的父类是InputSteamReader,而getEncoding()就是从InputSteamReader继承的得到的。所以,我们用FileReader,没有指定字符集编码,就是按照系统默认的编码方式打开的。并不是按照文件的编码方式打开的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2