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

写文件,不覆盖?
我想写内容到指定文件的第一行,即在文件的开始写入,而不是从文件的末尾写入。网上搜了一下,找到如下代码,可以指定位置写入,但是会把第一行的内容覆盖了,大家觉得这代码能改动使之不覆盖吗?或者有没有其他方法可以从文件开始中处写入内容?


try {
RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
randomFile.seek(0);
randomFile.writeBytes(content);
randomFile.close();
} catch (IOException e) {
    e.printStackTrace();
}

------解决方案--------------------
没办法,要自行处理。相当于全部重写。

你把这个操作过程理解成:你要在一个数组前面插入若干元素 差不多类似。
------解决方案--------------------
技术上的思路没想处理啊,
给一个逻辑上的解放方法吧,
首先,把原来的内容读出来,并且加上新增加的内容,然后写回到原来的文档。
适合小型文件。
------解决方案--------------------
引用:
其实我是想定log文件,把一些错误打到txt文件上。要不想把以前的错误log覆盖掉,追加到最后查看又不方便,所以就想写在最开始,现在看来如果不像3楼说的那样好像实现不了。。

目前打印日志都是放到文件末尾的,要是硬要做成3楼那样,估计有点得不偿失了。
------解决方案--------------------
理清思路最重要 !

------解决方案--------------------
如果是文本的话可以把这一行的文本替换成你要write的内容再加上原来的内容。
------解决方案--------------------
引用:
其实我是想定log文件,把一些错误打到txt文件上。要不想把以前的错误log覆盖掉,追加到最后查看又不方便,所以就想写在最开始,现在看来如果不像3楼说的那样好像实现不了。。
你就写到后面嘛!要显示到前面,不可以用集合排序的功能排序啊!
------解决方案--------------------
放数据库里 想怎么都行

------解决方案--------------------
为啥不能先在第一行写个回车。。
------解决方案--------------------
你用这个类,要先把文件读出来 然后拼接在你的内容的后面最后在一次写入,,