黑马程序员技术交流社区
标题: <已解决>RandomAccessFile 求助 [打印本页]
作者: 赵俊杰 时间: 2012-8-3 21:39
标题: <已解决>RandomAccessFile 求助
本帖最后由 赵俊杰 于 2012-8-6 09:46 编辑
想在文本文件的开始处插入一段字符,
String insertStr="不速之客";
RandomAccessFile rac=new RandomAccessFile("c:\\test.txt","rw");
rac.seek(0);
rac.write(insertStr.getBytes());
rac.close();
如果像上面这样写,会把从seek(x)处到insert.Length()之间的原来的字符覆盖掉。现在想利用"字节互换位置"的方法,即先让文
件原来的全部字节整体后移insert.Length()位,然后再插入insert,但具体到tempStr怎么用,实在绕得有点
晕啊?:handshake
作者: 王志明 时间: 2012-8-3 22:16
import java.io.RandomAccessFile;
public class Test3 {
public static void main(String[] args) throws Exception {
String insertStr = "不速之客";
RandomAccessFile rac = new RandomAccessFile("c:\\test.txt", "rw");
// 先得到原有文件的长度,并创建相应长度的byte数组
byte[] temp = new byte[(int) rac.length()];
// 从文件中读取temp.length个字节数据并存入temp
rac.read(temp);
// 将指针移到前面
rac.seek(0);
// 将insertStr的数据写入文件并覆盖
rac.write(insertStr.getBytes());
// 再将文件中原先的内容写回去
rac.write(temp);
rac.close();
}
}
作者: 包晗 时间: 2012-8-3 22:27
1:提问贴,主题分类选择“提问”,提问后,问题已经解决了必须及时在贴内回复内容“问题已经解决”。
(如查明问题确实已解决,楼主未在贴内回帖说明,解决后的24小时之内 问题 提问者 扣除 技术分 1分,如有特殊情况请在贴内说明,让管理人员知道你的实际情况)
2:非真实姓名注册论坛用户ID提问,解决问题,不提供任何技术分加分。(非真实姓名发帖,版主和管理人员有权直接关闭贴)
申请论坛改名地址:http://bbs.itheima.com/thread-19719-1-1.html
如果姓名已经有人注册
例如:王鹏 这个ID被注册了,那么你可以改成“黑马-王鹏”“黑马粉-王鹏”“黑马_王鹏”“黑马王鹏”都是可以的!
作者: 赵俊杰 时间: 2012-8-3 23:09
包晗 发表于 2012-8-3 22:27
1:提问贴,主题分类选择“提问”,提问后,问题已经解决了必须及时在贴内回复内容“问题已经解决”。
(如 ...
老师,改名申请那个我早发了,麻烦您去改名申请那儿往后翻翻,还有一页半的改名请求等着处理呐。
作者: 赵俊杰 时间: 2012-8-3 23:22
谢谢您。
作者: 包晗 时间: 2012-8-3 23:35
专注 发表于 2012-8-3 23:22
谢谢您。
我只是一个版主
:handshake
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |