在一个文件中如何定位位置,并追加或修改字符串?

phoenix_zg 2008-01-18 08:46:59
假设有一个文本文件,里面有100行文本字符。我想在这个文件的某个特定位置追加或修改字符串,例如第8行的第9列追加"hello",不创建新文件,并且也不想从头到尾写一便,直接修改这个文件,用java如何实现,望高手帮忙解决一下。先谢谢了。
...全文
481 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
stokr 2008-01-18
  • 打赏
  • 举报
回复
要是针对某些文件类型的还是有变通的方法
比方说word 就可以通过word的域来定位你要修改的位置来进行追加
方法你在word中加入一个变量名 代码只要找到这个变量就能定位到了
具体的技术我觉得jaocb不错 例子网上也很多
  • 打赏
  • 举报
回复
除非规范每行的数据长度,比如50个字节时,可以采用 RandomAccessFile,
我记得在迪特尔父子的《Java程序设计教程》中就有个例子,把文件作为简单
的数据库来用。

但是对于没有格式规范的纯文本文件来说这点根本不可能做到,目前也没有软
件能直接做到,像文本编辑工具都是全部加载进内存,修改后再重新存回去的。
waterborn 2008-01-18
  • 打赏
  • 举报
回复
目前的操作系统, 没有一个可以实现的.
老紫竹 2008-01-18
  • 打赏
  • 举报
回复
明确声明,编辑和删除没戏!

1 任何修改都需要新建文件,除非... 你把文件全部读取到内存
2 不从头读取,你怎么找到第9行? 你那么神奇啊?直接预测到每个文件的第九行在文件的第几个字节处!

追加应该可以,移动到文件末尾,直接写入就行了!
moorstone 2008-01-18
  • 打赏
  • 举报
回复
顶!应该是不行!!
silswal 2008-01-18
  • 打赏
  • 举报
回复
嗯,同意二楼。即使是RandomAccessFile,也只是让你可以在指定位置写东西覆盖以前的,没有提供insert或者replace的方法。你只能先读出来,处理完再写入。
wdy9927 2008-01-18
  • 打赏
  • 举报
回复
关注一下,但感觉似乎不可能实现.
yuanqingfei 2008-01-18
  • 打赏
  • 举报
回复
你想要做的恐怕是不可能的,因为Java对文件的操作是先读后写,File类本身不提供修改的操作,也就是说还没有到你想要的那个抽象高度。
sun_3211 2008-01-18
  • 打赏
  • 举报
回复
FileWriter(new File(""));
你可以查一下帮助 里面没有直接在 文件 中写东西的
至少我不会 不能帮助你
先mark一下 我也很想知道的答案

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧