gpt4 book ai didi

java - 使用 Java 更新文件中所有出现的字符串

转载 作者:行者123 更新时间:2023-12-04 05:34:34 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Replace string in file

(2 个回答)


6年前关闭。




我有 1 个文件,其中包含一些需要更新的字符串。

MY REPORT
REPORT RUN DATE : 27/08/2012 12:35:11 PAGE 1 of @TOTAL@
SUCCESSFUL AND UNSUCCESSFUL DAILY TRANSACTIONS REPORT
---record of data here----

MY REPORT
REPORT RUN DATE : 27/08/2012 12:35:11 PAGE 2 of @TOTAL@
SUCCESSFUL AND UNSUCCESSFUL DAILY TRANSACTIONS REPORT
---record of data here----

如果我只想将所有出现的@TOTAL@ 更新为某个数字,是否有一种快速有效的方法来做到这一点?

我知道我也可以使用 BufferedReader+BufferedWriter 打印到另一个文件并在此过程中使用 String.replace 它,但我想知道是否有更好更优雅的方法来解决这个问题...

文件不会超过10MB,所以不用担心文件会不会很大(超过1GB等)

最佳答案

... I wonder if there is a better and elegant way to solve this



这取决于您所说的“更好更优雅”是什么意思,但 IMO 的答案是否定的。

The file wont exceed 10MB, so there is no need to concern whether the file can be to big ( exceed 1 GB etc )



您不太可能超过 1Gb。然而:
  • 您可能无法 100% 确定文件不会大于 10Mb。对于任何具有重要生命周期的程序,您很少会知道需求和使用模式不会随着时间而改变。
  • 实际上,如果将整个批次加载到 StringBuilder 中,则 10Mb 的文本文件可能占用多达 60Mb 的内存。首先,字节被膨胀为字符。其次,StringBuilder 用于管理其后备数组的算法涉及分配一个大小为原始数组两倍的新数组。因此,峰值内存使用量可能高达您正在读取的文件中字节数的 6 倍。
  • 请注意,对于某些平台上的某些 JVM,60Mb 大于默认的最大堆大小。
  • 关于java - 使用 Java 更新文件中所有出现的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12136459/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com