java的问题.,,用DataOutputStream的writerInt方法写入文本,,为什么不显示数字

importjava.io.*;publicclassP153_6{publicstaticvoidmain(Stringargs[]){SaveRandomIntFil... import java.io.*;
public class P153_6
{
public static void main(String args[])
{
SaveRandomIntFile d=new SaveRandomIntFile();
}
}

class SaveRandomIntFile
{

SaveRandomIntFile()
{
try
{
int i[]=new int[5000];
FileOutputStream FOS=new FileOutputStream(new File("F.txt"));
DataOutputStream DOS=new DataOutputStream(FOS);
for(int j=0;j<i.length;j++)
{
i[j]=(int)(9999*Math.random()+1);
DOS.writeInt((int)i[j]);
}
DOS.close();
}
catch(Exception e)
{

}
}
}
其实我想知道的是,,怎样写入数据,,读出数据,,,我用我这个方法,,,写进去是乱码,,读出来是没问题的
展开
 我来答
百度网友a3d0bd12c
2011-09-18
知道答主
回答量:23
采纳率:0%
帮助的人:19.4万
展开全部
所有的文件都可以理解为是byte[]。而1个byte占1个字节,一个Int是4个字节。
所以说你写进去的东西将会出现乱码,除非你已readInt().或者已write()写read()读,
总之你的输入和读取的类型要相同。
追问
怎么改啊
追答
写文件:用write()写read()读
hardneedl
2011-09-18 · TA获得超过921个赞
知道小有建树答主
回答量:1353
采纳率:57%
帮助的人:605万
展开全部
程序写的没错!问题是:你没弄懂的是:写出去的是二进制的数据,而非你认为的文本的编码方式。做实验:你用二进制文件编辑器查看写出的文件就知道了,为了给你方便常看,我改写你的程序并简化了代码:
public class DataOutputStreamDemo {
public static void main(String args[]) throws IOException {
DataOutputStream dos = new DataOutputStream(new FileOutputStream(args[0]));
for (int i = 0; i < 5000; i++) dos.writeInt(i);
dos.flush();dos.close();
}
}
追问
怎么改?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
这个可行
2011-09-18
知道答主
回答量:23
采纳率:0%
帮助的人:10.9万
展开全部
DataOutputStream 输出的是字节流,你保存在txt文档中再打开看当然会是乱码
看看DataOutputStream 的wirteInt()方法的说明

public final void writeInt(int v) throws IOException
将一个 int 值以 4字节值形式写入基础输出流中,
追问
怎么改啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rixanno9
2011-09-19 · 超过40用户采纳过TA的回答
知道答主
回答量:142
采纳率:0%
帮助的人:116万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式