java输入输出问题,为什么想写入的是12345,但是输出却是0

package 流;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.Buffer;

public class 写入
{

    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        try
        {
            DataOutputStream out=new DataOutputStream
                    (
                            new BufferedOutputStream
                            (
                                    new FileOutputStream("b.dat")
                            )
                    );
            out.writeInt(12345);
            out.close();
            DataInputStream in=new DataInputStream
                    (
                            new BufferedInputStream
                            (
                                    new FileInputStream("b.dat")
                            )
                    );
            System.out.println(in.read());
        } catch (FileNotFoundException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

in.read()是读入一个字节,要用 in.readInt()
写出文件的格式要与读取文件的格式相对应起来,你用什么格式写出到文件的,就用什么格式读文件。

楼上正解

public static void main(String[] args) {
        try {
            DataOutputStream out = new DataOutputStream(new FileOutputStream("d:\\aaaa.bat"));
            out.writeInt(123456);
            out.close();
            DataInputStream  dis = new DataInputStream(new FileInputStream("d:\\aaaa.bat"));
       System.err.println(dis.readInt());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }