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不乱码,读写中文数字混合正常呢 展开
in.writeChars("干什么");
in.seek(0);
System.out.println(in.readChar());
用这个办法能正确读写中文而且数字也可以当作char来读,可是txt是乱码,如何使得txt不乱码,读写中文数字混合正常呢 展开
3个回答
2015-07-05 · 知道合伙人互联网行家
关注
展开全部
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()写入文件,文件显示正常了,可是读取中文又乱码了,这个又要怎么处理呢?
追答
再转回来呀~~~~~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将它的workspace下的text file encoding下的other设置为UTF-8就可以了
追问
设置成utf-8了,d盘那个输出的文件也设置成utf-8了,打印出来是:^rN繬H
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询