为什么JAVA读入的数据是一行乱码? 5

importjava.io.*;publicclassFile2{publicstaticvoidmain(String[]args)throwsException{Fi... import java.io.*;
public class File2 {
public static void main(String[] args) throws Exception{
File f=new File("D://filetest//file1.txt");
RandomAccessFile raf=new RandomAccessFile(f,"rw");
int x=4;
char c='a';
long l=123;
float f1=3.7f;
double d=4.6568554d;
String s="效率,特高效率";
raf.writeInt(x);
raf.writeChar(c);
raf.writeLong(l);
raf.writeFloat(f1);
raf.writeDouble(d);
raf.writeUTF(s);
raf.close();
System.out.println("文件已经创建完成!");

}
}
打开txt。上面就是一行乱码
不懂,最好给我写一下代码?
展开
 我来答
百度网友e36e129
2012-11-11 · TA获得超过162个赞
知道答主
回答量:61
采纳率:0%
帮助的人:64.4万
展开全部

RandomAccessFile就类似与你访问内存,你写入的是数值(二进制),比如你写入x,就是一个int类型的占四个bytes,32位,当你打开这个文件的时候你是以文本的形式查看的,所以会出现乱码,如果你写入的是文本类型的,比如s(效率,特高效率),你就能看到,不过因为你写入的时候用的是UTF8,所以你必须以UTF8打开就能看到,否则“效率,特高效率”这几个字也会是乱码

这个我用utf8编码打开后的效果,请参考,希望可以帮助到你


FileWriter改写:

import java.io.File;

import java.io.FileWriter;

import java.util.Scanner;

public class Main {

public static void main(String[] args) throws Exception{

File f=new File("D://file1.txt");

FileWriter fw=new FileWriter(f);

int x=4;

char c='a';

long l=123;

float f1=3.7f;

double d=4.6568554d;

String s="效率,特高效率";

fw.write(x);

fw.write(c);

fw.write(new Float(l).toString());

fw.write(new Double(f1).toString());

fw.write(s);

fw.close();

System.out.println("文件已经创建完成!");

}

}

Stale331x
2012-11-11 · TA获得超过1299个赞
知道小有建树答主
回答量:1276
采纳率:33%
帮助的人:856万
展开全部
你的文件中是不是中文来的?如果是,乱码就很正常了。
一般解决乱码的办法就是先读取放到byte[]当中,然后转换为String,记得使用charset(好像是这名字)属性。
我读取文本文件txt一般是用FileInputStream的,建议你学学跟流有关的东西
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不祥之子的忧伤
2012-11-11
知道答主
回答量:27
采纳率:0%
帮助的人:23.4万
展开全部
直接输入很容易乱码,用过滤流会好,用printwriter
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhao547869783
2012-11-11
知道答主
回答量:52
采纳率:0%
帮助的人:18.3万
展开全部
流写入是intput 你要写东西进去里面可的那个要用字符流转换才可以的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没有响应m2
2012-11-11 · TA获得超过8387个赞
知道大有可为答主
回答量:7579
采纳率:33%
帮助的人:3627万
展开全部
因为你写进去的不是字符串 而是2进制码........
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式