A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hello_world! 中级黑马   /  2012-10-21 12:32  /  1477 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在毕老师讲的IO流中,他说过转换流是可以指定一个文件的编码方式的。这里就不详细说了。但是,我现在想打开一个任意文本文件,怎样得到这个文本文件的编码方式呢?

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
个人感觉:如果你不指定字符编码,它默认以电脑当前语言的编码打开,所以你打开任意文本文件的编码,就是当前电脑的编码。
回复 使用道具 举报
刚找到一方法,是FileReader的方法:::public String getEncoding()
返回此流使用的字符编码的名称。
如果该编码有历史上用过的名称,则返回该名称;否则返回该编码的规范化名称。

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

返回:
此编码的历史名称,如果流已经关闭,则可能返回 null

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1 赞一个!

查看全部评分

回复 使用道具 举报
陈琦 发表于 2012-10-21 12:39
个人感觉:如果你不指定字符编码,它默认以电脑当前语言的编码打开,所以你打开任意文本文件的编码,就是当 ...

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

public String getEncoding()这个方法不行。
FileReader的父类是InputSteamReader,而getEncoding()就是从InputSteamReader继承的得到的。所以,我们用FileReader,没有指定字符集编码,就是按照系统默认的编码方式打开的。并不是按照文件的编码方式打开的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马