java的randomaccessfile读写文件中文乱码问题

RandomAccessFilein=newRandomAccessFile("D:\\Course.txt","rws");in.writeChars("干什么");i... RandomAccessFile in = new RandomAccessFile("D:\\Course.txt", "rws");
in.writeChars("干什么");
in.seek(0);
System.out.println(in.readChar());
用这个办法能正确读写中文而且数字也可以当作char来读,可是txt是乱码,如何使得txt不乱码,读写中文数字混合正常呢
展开
 我来答
曹晓山11
2015-07-05 · 知道合伙人互联网行家
曹晓山11
知道合伙人互联网行家
采纳数:3033 获赞数:52066
毕业南阳理工学院计算机科学与技术专业,本科学位。互联网行业从业3年工作经验,读过编程类相关书籍多本。

向TA提问 私信TA
展开全部

java中RandomAccessFile存取读写文件,需要用getBytes()先转换编码,中文乱码解决示例):

package Iec104Config;
import java.io.*;
public class Test {   
    public static void main(String[] args)throws IOException{    
                String stringToBeSaved="测\naa";    
                FileWriter saveFile=new FileWriter("Test.txt", false);    
                PrintWriter savedOut=new PrintWriter(saveFile);    
                savedOut.print(stringToBeSaved+"\n");    
                savedOut.close();            
                RandomAccessFile Open= new RandomAccessFile("Test.txt","r");    
                String s=Open.readLine();    
                s=new String(s.getBytes("8859_1"), "gbk");//编码转换    
                System.out.println(s);    
                System.out.println(Open.readLine());
匿名用户
2013-11-02
展开全部
“”.getBytes("<编码名>") 先转换编码
更多追问追答
追问
用getbytes转化只能用writebytes()写入文件,文件显示正常了,可是读取中文又乱码了,这个又要怎么处理呢?
追答
再转回来呀~~~~~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
韩娱台
2013-11-02 · TA获得超过351个赞
知道答主
回答量:21
采纳率:0%
帮助的人:13.5万
展开全部
将它的workspace下的text file encoding下的other设置为UTF-8就可以了
追问
设置成utf-8了,d盘那个输出的文件也设置成utf-8了,打印出来是:^rN繬H
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式