import java.io.*;public class Testwrite{ public static void main(String[] arg){
int[] buf={0,1,2,3,4,5,6,7,8,10000};

String s = String(buf,0,buf.length);
try{
 OutputStream fos = new FileOutputStream("test.txt");
 
 //fos.write(buf);需要byte[]不能是 int[]
 
 //ByteArrayOutputStream baos = new ByteArrayOutputStream();//no Parameter
 //baos.write(buf,0,buf.length);
 //String s = baos.toString();
 
 DataOutputStream dos = new DataOutputStream(fos);
 dos.writeChars(s);
 
 
   
   }
   catch(Exception e){
  String err = e.toString();
  System.out.println(err);
}
}
}
我试过//句后的方法均无法在文件里显示正确的数字! 怎么办? 急  
请帮我修改一下程序!
谢谢!!

解决方案 »

  1.   

    请参考如下代码    int[]   buf={0,1,2,3,4,5,6,7,8,10000}; 
        OutputStream fos = new FileOutputStream("d:\\test.txt");
        DataOutputStream dos = new DataOutputStream(fos); 
        for(int data : buf){
          dos.writeInt(data);
        }
        dos.close();
      

  2.   

    提示:
    试过//句后的方法均无法在文件里显示正确的数字!   怎么办?   急难道你要把 整数1 写入到文件,然后打开文本文件看到文字1??请注意,整数1并不对应字符串的"1"哦,
    "1" 对应字节 0x31H 或者 49 才对!
    对于字符应该写入byte才好
    dos.writeByte(data);
      

  3.   

    感谢楼上的提醒! 但是必须要一个个转才可以么?一般的程序有没有更好的写法,int[]能被写出来就是相应的int 值?
      

  4.   


    public static void main(String[] arg){ 
    int[] buf = {0,1,2,3,4,5,6,7,8,10000}; 
    try{ 
       PrintWriter out = new PrintWriter("d:/test.txt");    
       for(int i = 0 ; i < buf.length ; i ++ ){
       out.print(buf[i]);
               }
       out.flush();
       out.close();       
    }catch(Exception e){ 
       String err = e.toString(); 
       System.out.println(err); 

    }
      

  5.   

    int[]能被写出来就是相应的int   值?你难道忘了还有 Interger.toString(), 方法吗?    for(int data : buf){
          dos.writeChars(Integer.toString(data));
        }