import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
public class writeDemo1 {
public static void main(String[] args) {
int data[] = {
1,2,3,4,5,6,
11,32,423,54,654,123,
213,43,53,65,34 };

try {
FileWriter fos = new FileWriter("FileOutputStream.dat",true);
//true意味着在文件末尾添加,而不是覆原文件
//此处使用FileOutputStream也一样
//但是此处写出来的文件内容似乎不对

for(int i = 0; i < data.length; i++)
{
fos.write(data[i]);
}

fos.close();

} catch (FileNotFoundException e) {
System.out.println("Err is + "+e.toString());

} catch (IOException e) {
System.out.println("Err is + "+e.toString());
} } }

解决方案 »

  1.   

    你那样肯定不行拉···fos.write(data[i]);只能写int的低16位,肯定是乱码咯··应该这样:fos.write(String.valueOf(data[i]));
      

  2.   

    sixme(子曾经曰过:“基础和算法才素王道”。) :
    你还是没有把乱码的原因跟人家说清楚~
      

  3.   

    sixme(子曾经曰过:“基础和算法才素王道”。) :
    你还是没有把乱码的原因跟人家说清楚~
    --------------------------
    看文档没仔细。汗自己一个···write(int a)中a代表某个字符的对应的整数值,也就是某个字符的ASCII码,所以写入的是ASCII码为该数组元素对应的字符,相当于fos.write((char)data[i])。
      

  4.   

    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    public class writeDemo1 {
    public static void main(String[] args) {
    int data[] = {
    1,2,3,4,5,6,
    11,32,423,54,654,123,
    213,43,53,65,34 };try {
    FileWriter fos = new FileWriter("FileOutputStream.dat",true);
    //true意味着在文件末尾添加,而不是覆原文件
    //此处使用FileOutputStream也一样
    //但是此处写出来的文件内容似乎不对for(int i = 0; i < data.length; i++)
    {
    fos.write(Integer.toString(data[i]));  //改动在这里
    }fos.close();} catch (FileNotFoundException e) {
    System.out.println("Err is + "+e.toString());} catch (IOException e) {
    System.out.println("Err is + "+e.toString());
    }}}
      

  5.   

    FileWriter继承的java.io.Writer的write方法,参数可以是string
    FileOutputStream的write方法的参数是byte[]或者int;
    如果参数是int,是这个
    public void write(int b)
               throws IOException将指定字节写入此文件输出流。
    sixme的程序是对的吧。。文档里面写的:
    public static String valueOf(int i)返回 int 参数的字符串表示形式。 
    该表示形式恰好是单参数的 Integer.toString 方法返回的结果。 
      

  6.   

    应该是编码问题吧.........路过..........友情UP......//___________送个笑话____________
    一个年轻力壮的男子来到西药店里,表示要买一种效力强大、保证持久的春药,他向老板解释道:“今天晚上,我要应付两个骚女子,我要表现我的厉害给她们看看。”
      药剂师给了他一些保证有效的药丸,并且建议他最好立刻服用,因为药性要过一段时间才会生效。男子照着做后,回去等他的客人。
      第二天,他狼狈不堪的来到西药店。
      “你看起来好像精疲力尽了。”药剂师微笑的说道。
      “别提了!”男子呻吟道:“给我一点破皮软膏。”
      “擦你的……”
      “擦我的手,她们昨晚都没来!”男子咆哮道。 www.xiaohua007.com
      

  7.   

    FileWriter类是字符流操作,而对于INT型变量,内存分配给4个字节
      

  8.   

    你如果fos.write(Integer.toString(data[i])); 这样的话写进去是data[i]那个整数对应ASC2码.那样读回来是没问题的,如果你想打开文件可以看见那些数字的话.
    for(int i = 0; i < data.length; i++)
    {
        String s="\r\n"+data[i];
        
    fos.write(s);
    }fos.close();
      

  9.   

    上面粘贴错了,应该是
    你如果fos.write(data[i]); 这样的话写进去是data[i]那个整数对应ASC2码.那样读回来是没问题的
      

  10.   

    File fl = new File("1.txt");
    FileOutputStream fos = new FileOutputStream(fl,true);
    //true意味着在文件末尾添加,而不是覆原文件

    OutputStreamWriter osw = new OutputStreamWriter(fos);
    BufferedWriter bfw = new BufferedWriter(osw);

    String str = new String(data,0,data.length);
    for(int i = 0; i < data.length; i++){
    bfw.write(Integer.toString(data[i])+",");
    }


    bfw.flush();
    bfw.close();

    fos.flush();
    fos.close();
      

  11.   

    以下的方式,我都试过了,都可以
                               File fl = new File("1.txt");
    FileOutputStream fos = new FileOutputStream(fl,true);
    //true意味着在文件末尾添加,而不是覆原文件

    OutputStreamWriter osw = new OutputStreamWriter(fos);
    BufferedWriter bfw = new BufferedWriter(osw);

    String str = new String(data,0,data.length);
    for(int i = 0; i < data.length; i++){
    //bfw.write(Integer.toString(data[i])+",");
    //bfw.write(String.valueOf(data[i])+",");
     String s= ""+data[i];
     bfw.write(s);
    }


    bfw.flush();
    bfw.close();

    fos.flush();