日期:2014-05-20  浏览次数:20745 次

DataOutputStream 问题?
File file=new File("f://file.txt");
  try {
  FileOutputStream fos=new FileOutputStream(file);
  DataOutputStream dos=new DataOutputStream(fos);
  int n=123;
  int i=1;
  /* for(i=0;i<=100;i++){
  dos.writeDouble(Math.random());
  dos.writeChars("\n");
  }*/
  dos.writeInt(n);
  dos.flush();
  dos.close();
  } catch (FileNotFoundException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  }
为什么写入的 {,而不是123 ???

------解决方案--------------------
你写入OutputStream的值是一个int值123,用文本文件打开会换成123值对应的 字符编码 输出的就是{
如果你想要存储后打开文本文件显示123,那么你直接存入字符串"123"
Java code


import java.io.*;

public class DataOutputStreamDemo {
    public static void main(String[] args) {
        File file=new File("f://file.txt");
        try {
            FileOutputStream fos=new FileOutputStream(file);
            DataOutputStream dos=new DataOutputStream(fos);
            int n=123;
            int i=1;
            /* for(i=0;i<=100;i++){
            dos.writeDouble(Math.random());
            dos.writeChars("\n");
            }*/
//            dos.writeInt(n);
            dos.writeBytes("123");
            dos.flush();
            dos.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}