java filechannel读取txt 乱码

用io包读取中文正确,换成NIO的就成乱码了,,publicclassNIO{privatestaticintBSIZE=1024;publicstaticvoidmai... 用io包读取中文正确,换成NIO的就成乱码了,,
public class NIO {
private static int BSIZE = 1024;

public static void main(String[] args) throws IOException {
//写文件
FileChannel fc = new FileOutputStream("f:\\aaa.txt").getChannel();
fc.write(ByteBuffer.wrap("asdasdxzcxzc放到".getBytes()));
fc.close();
// //添加文件到末尾
// fc = new RandomAccessFile("f:\\aaa.txt","rw").getChannel();
// fc.position(fc.size());
// fc.write(ByteBuffer.wrap("田间".getBytes("utf-8")));
// fc.close();
//读文件
FileChannel fc2 = new FileInputStream("f:\\aaa.txt").getChannel();
//分配缓存
ByteBuffer buff = ByteBuffer.allocate(BSIZE);
//读入缓存区
fc2.read(buff);
buff.flip();
while(buff.hasRemaining()){
System.out.print(buff.get() + " ");
}
fc2.close();
}
}
展开
 我来答
还原过去
2010-05-05 · TA获得超过132个赞
知道答主
回答量:91
采纳率:0%
帮助的人:75.4万
展开全部
乱码肯定是编码问题的原因,你首先检查下你生成的TXT是不是乱码,然后再检查读入后输出的是不是乱码,每个有关字符串编码的处理都可以用new String(otherString.getBytes("源编码集"),“目的编码集”);进行处理
a30501139
2010-05-05 · TA获得超过172个赞
知道小有建树答主
回答量:523
采纳率:0%
帮助的人:252万
展开全部
原先用BufferedReader b=new BufferedReader(new FileReader(path));的时候遇到中文的话会产生乱码;

代码改为:
InputStreamReader read = new InputStreamReader(new FileInputStream(path), "GB2312");
BufferedReader br = new BufferedReader(read);
后问题解决

你可以参考下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式