ColdFusion修改文本文件中的单行

时间:2014-05-13 14:43:45

标签: file-io coldfusion edit

有没有办法在ColdFusion中编辑文本文件的单行内容?

据我所知,我必须读取并缓冲整个文本文件,然后按原样逐行重写,直到找到我必须修改的行,输入我想要的值,然后继续重新 - 按原样写出其余的行。

我不喜欢重写整个文件的想法..我想找到一种编辑单行的方法,你有什么建议?

更多详情

基本上我有一个看起来像这样的配置文件

my_own.thingy.blabla1 = "true";
my_own.thingy.bla_bla = 1337;
my_own.thingy.foo_bar_baz = "what ever...";

我的CFC控制器收到类似"编辑bla_bla到42"

的请求

我需要

  1. 将配置文件读入变量
  2. 在变量中找到bla_bla定义的位置
  3. 将子串1337替换为42
  4. 使用包含修改后的文件文本
  5. 的修改变量重写文件

    我正在寻找一个很好的方法来完成第2步和第3步,因为#1和#2是微不足道的

    编辑:有人指出我使用JSON,但我不知道这将如何应用。

2 个答案:

答案 0 :(得分:5)

当然要编辑文本文件中的单行,当你“保存”文件时你必须重写整个文件,但是不是一行一行地写它为什么不读取整个文件(使用cffile读取) )转换为变量,更改文件的相应部分,然后使用cffile write将整个文件写回。

不要以为我会建议一次写一行文件来找到你想要编辑的行。

答案 1 :(得分:1)

如果您不太可能想手动编辑配置文件,那么使用JSON是一种很好的方法,但如果您需要能够跳转,那么“旧学校”.INI样式配置文件更容易使用用文本编辑器。

我建议用4种方法创建一个简单的组件: i)将配置读入变量 ii)获取配置参数的值 iii)更新配置参数的值 iv)将整个配置写回文件

正如其他人所指出的那样,无论如何你最终都会更新整个文件,除非文件很大,否则你的应用程序性能影响可能会很小。保持代码简单可能会带来更大的好处。