【问题标题】:how to replace parameter value into the txt file?如何将参数值替换为txt文件?
【发布时间】:2016-04-20 05:27:21
【问题描述】:

谁能解释我如何替换 .txt 文件中的值。 例如,我有一个带有一行的“Test.txt”文件:

 1,23343,EUR,1.45,${param1},Mr,${param2}

我有一个像下面这样的 HashMap:

Map map= new HashMap();
    map.put("param1", "1000");
    map.put("param2", "4000");

所以现在我想使用我的 HashMap 的键值并将其传递给 .txt 文件,但我不知道该怎么做。

我的文件 Test.txt 应该是这样的

1,23343,EUR,1.45,1000,Mr,4000

请帮帮我。 提前谢谢你。

【问题讨论】:

  • 您的文件需要作为文本在内存中,然后您可以对文本应用 replaceAll。文件只是磁盘上的字节,你不能向它传递任何东西。
  • 不清楚“将其传递给 .txt 文件”是什么意思。你想写入文件吗?您想从文件中读取与您的密钥匹配的特定行吗?
  • 认为您在问如何将param1 替换为1000param24000。你都尝试了些什么?研究如何读取、解析和写入文本文件中的行。这是基本的东西。
  • 这不是你不需要 ${param1} 的 javascript / jsp 文件,你不能将它传递给文本文件。你可以只创建一个缓冲区阅读器。从文件中读取,并使用基本的字符串操作技巧写入值

标签: java


【解决方案1】:

您可以使用envsubst 命令在命令行上执行此操作。

export param1=1000
export param2=4000

envsubst < original.txt > new.txt

envsubst 是许多 Linux 发行版中的标准命令行实用程序。

【讨论】:

    【解决方案2】:

    https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/text/StrSubstitutor.html

    例子:

     Map map = HashMap();
     map.put("param1", "1000");
     map.put("param2", "4000");
     StrSubstitutor sub = new StrSubstitutor(map);
     String resolvedString = sub.replace("1,23343,EUR,1.45,${param1},Mr,${param2}");
    

    屈服:

    1,23343,EUR,1.45,1000,Mr,4000

    【讨论】:

      猜你喜欢
      • 2020-08-31
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多