如何读取一个文件,用某种特定的编码写入另一个文件(JAVA)

下午同事给了一个电影的字幕文件,发现是乱码,偶觉得可能是编码问题,可是改了好几个编码还是不行,最后借助word才知道原来是Big5编码,于是我想到用程序来自动识别编码,可... 下午同事给了一个电影的字幕文件,发现是乱码,偶觉得可能是编码问题,可是改了好几个编码还是不行,最后借助word才知道原来是Big5编码,于是我想到用程序来自动识别编码,可是不知道怎么写。然后我又想,我以字符流或字节流的方式读取这个文件(这个应该和编码没关系吧),然后按照某种指定编码输出到一个文件,可是搜索了半天,只查到以某种编码读出这个文件,我的意思就是说,我们不知道这个文件的原来编码,我们用一种和编码无关的方法读取这个文件,然后自己按照某种编码写入txt文件,这个编码可一个一个试,应该能正确输出她原先的格式吧。大家看这个如何写
用java写
怎么没人帮我啊
展开
 我来答
lsj19830812
2010-06-04 · TA获得超过259个赞
知道小有建树答主
回答量:288
采纳率:0%
帮助的人:241万
展开全部
import java.io.File;
import java.io.IOException;

public class CovertEncode {
public static void main(String args[]) throws Exception {
CovertFile("d:\\1.txt");
}

public static void CovertFile(String filename) throws IOException {

String backupfilename = filename + ".backup";
File f = new File(filename);
File outf = new File(backupfilename);
f.renameTo(outf);

java.io.FileInputStream in = new java.io.FileInputStream(backupfilename);
java.io.InputStreamReader isr = new java.io.InputStreamReader(in, "Big5");
java.io.BufferedReader br = (new java.io.BufferedReader(isr));

// open output stream
java.io.FileOutputStream out = new java.io.FileOutputStream(filename);
java.io.BufferedWriter bw = new java.io.BufferedWriter(
new java.io.OutputStreamWriter(out, "GBK"));

char[] buffer = new char[4096];
int len;
while ((len = br.read(buffer)) != -1)
bw.write(buffer, 0, len);
br.close();
bw.flush();
bw.close();
outf.deleteOnExit();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tianjigeng
2010-06-04 · TA获得超过593个赞
知道小有建树答主
回答量:387
采纳率:0%
帮助的人:0
展开全部
用ByteArrayInputStream或ByteBufferInputStream。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式