已经存在的一个File,有500byte。现在需要更新里面的数据了,如何重新写入新数据呢?FileOutputStream貌似没有truncate()方法,我现在想的是:
1.先删除该文件。
2.重新创建
3.再写入新数据。
有没有不删除文件就可写入新数据的方法?谢谢...

解决方案 »

  1.   

    FileOutputStream里面写的时候貌似会覆盖之前的内容吧?这个不就是你想要的吗?
    如果不行的话,就用FileWrite这个,这个可以覆盖文件中的内容。
      

  2.   

    File f=new File("c:\\11.txt"); 
    RandomAccessFile raf=new RandomAccessFile(f,"rw"); 
    通过RandomAccessFile 的seek和skip函数来移动指针,如果你写文件的时候知道格式,那就能随意改了。
    比如10-50byte的内容是id,那你就seek(10),然后指定len是40,这样就能直接修改文件中的一部分内容了。