A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵俊杰 山林野马   /  2012-8-3 21:39  /  1788 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵俊杰 于 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

5 个回复

倒序浏览
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();
        }
}


回复 使用道具 举报
1:提问贴,主题分类选择“提问”,提问后,问题已经解决了必须及时在贴内回复内容“问题已经解决”。
(如查明问题确实已解决,楼主未在贴内回帖说明,解决后的24小时之内 问题 提问者 扣除 技术分 1分,如有特殊情况请在贴内说明,让管理人员知道你的实际情况)

2:非真实姓名注册论坛用户ID提问,解决问题,不提供任何技术分加分。(非真实姓名发帖,版主和管理人员有权直接关闭贴)
申请论坛改名地址:http://bbs.itheima.com/thread-19719-1-1.html
如果姓名已经有人注册
例如:王鹏 这个ID被注册了,那么你可以改成“黑马-王鹏”“黑马粉-王鹏”“黑马_王鹏”“黑马王鹏”都是可以的!

回复 使用道具 举报
包晗 发表于 2012-8-3 22:27
1:提问贴,主题分类选择“提问”,提问后,问题已经解决了必须及时在贴内回复内容“问题已经解决”。
(如 ...

老师,改名申请那个我早发了,麻烦您去改名申请那儿往后翻翻,还有一页半的改名请求等着处理呐。
回复 使用道具 举报
谢谢您。
回复 使用道具 举报
专注 发表于 2012-8-3 23:22
谢谢您。

我只是一个版主
:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马