package wode.test;
import java.io.*;
import java.util.Random;public class io { public static void main(String[] args) {
byte [] buf=new byte[50];
FileOutputStream out;
Random rd=new Random();

rd.nextBytes(buf);
for(int i=0;i<buf.length;i++){

System.out.print(buf[i]+" ");
if((i+1)%10==0){
System.out.println();
}
}
System.out.println();
try {
// FileInputStream in=new FileInputStream("d:\\data1.dat");
out=new FileOutputStream("d:\\data1.dat");
out.write(buf);
//   int  n=in.available();
 //  byte [] buf1=new byte[n];
//    in.read(buf1);
out.close();
// for(int i=0;i<n;i++){

// System.out.print(buf1[i]+" ");
// if((i+1)%10==0){
// System.out.println();
// }
// }
// in.close();

} catch (FileNotFoundException e) {
System.out.println("文件不存在!");

}catch(IOException e){
System.out.println(e.toString());
}
}}
为啥生成的data1.dat文件里是乱码?那位同僚帮忙看看!!

解决方案 »

  1.   

    也许是java内置方式的编码UTF-8与系统编码UTF-8的显示方式不一样 你试着修改一下java显示输出的编码方式 看行不
      

  2.   

    你代码生成的内容:鸴鉻udewj??烳烫眹倏"mA摒襙畉诖I?
    ^貹p&?A你的随机数组:-1 -5 96 -29 116 117 30 100 101 119 
    106 -49 58 -49 18 -97 77 -52 -52 24 
    18 -79 -121 -39 -65 34 109 65 -34 -16 
    -46 95 -82 116 -38 -76 73 -90 37 10 
    127 94 -39 75 112 14 38 -34 6 65 UTF字符集里有负数对应的字符么?我好像不知道,还有,你随机生成的数不一定在UTF里有定义的字符,另外一种可能是:我们是在中国,电脑上装的软件不支持你所打印出来的文字,一般以“?”出现