如何使用filechannel和bytebuffer将double写入文件?

时间:2014-09-25 01:48:20

标签: java

我尝试了以下方法,但似乎有些不对劲。

    File f=new File("D:\\aa.txt");
    FileOutputStream fos =new FileOutputStream(f);
    FileChannel fc=fos.getChannel();
    ByteBuffer buf=ByteBuffer.allocate(128);
    for (int i=0;i<16;i++) {
        buf.putDouble(i*8,Math.sqrt(i));            
    }
    fc.write(buf);
    fc.close();

1 个答案:

答案 0 :(得分:1)

在编写缓冲区之前,您需要flip()缓冲区,如果您正在循环播放,则需要compact()