java 文件的修改_使用java来修改文件内容

我需要就地修改文件的特定内容.

我不想创建一个新文件并重写旧文件.文件也很小,每个最大只有几MB.

对于那些想知道的人(虽然我不确定这是否与OP有关),我需要修改属于版本控制的文件并需要修改只读版本.在适当的位置进行修改要简单得多.

Java apis可以实现吗?

如果没有,是否有提供此功能的库?

解决方法:

Java允许随机访问和写入磁盘上的文件.但是,写入文件中间只能覆盖字节 – 即用其他字节替换特定字节 – 并且不能将数据插入文件的中间.为此,您必须在插入点之后重写所有内容.将文件视为恰好驻留在磁盘上的字符数组(char []).随机访问允许你做相同的

char[] file = ... // the file on disk

char[] newData = ... // the data to be written

int pos = ... // the position in the file to write to

for (i=0; i

{

file[pos+i] = newData[i];

}

要在文件中插入数据,需要使用与将数据插入数组相同的过程.插入点之后的所有数据都必须向右移动以容纳插入的数据.如果要用较短的字符串替换(即删除字节),则编辑后的数据必须向左移位.

其次,你说:

I need to modify files that are part of version control and need to modify a read-only version

只读就是这个意思.如果文件是只读的,则无论是否使用随机访问,都无法以任何方式对其进行修改.

你还在评论中说:

The new file will not be under source control.I will have to find a way to add it.I am trying to avoid this

如果文件受源代码管理,则您很可能正在使用本地副本.只要更新的文件与原始文件具有相同的名称并且位于同一目录中,如果您创建该文件的新实例,它就没有任何区别.您只需将更新的版本提交给源控制系统.

但是,如果要更新源控制系统存储库中的文件,则可能会永久损坏系统.

标签:java,file-io,inputstream,nio

来源: https://codeday.me/bug/20191002/1844316.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值