有没有办法在ColdFusion中编辑文本文件的单行内容?
据我所知,我必须读取并缓冲整个文本文件,然后按原样逐行重写,直到找到我必须修改的行,输入我想要的值,然后继续重新 - 按原样写出其余的行。
我不喜欢重写整个文件的想法..我想找到一种编辑单行的方法,你有什么建议?
更多详情
基本上我有一个看起来像这样的配置文件
my_own.thingy.blabla1 = "true";
my_own.thingy.bla_bla = 1337;
my_own.thingy.foo_bar_baz = "what ever...";
我的CFC控制器收到类似"编辑bla_bla到42"
的请求我需要
bla_bla
定义的位置我正在寻找一个很好的方法来完成第2步和第3步,因为#1和#2是微不足道的
编辑:有人指出我使用JSON,但我不知道这将如何应用。
答案 0 :(得分:5)
当然要编辑文本文件中的单行,当你“保存”文件时你必须重写整个文件,但是不是一行一行地写它为什么不读取整个文件(使用cffile读取) )转换为变量,更改文件的相应部分,然后使用cffile write将整个文件写回。
不要以为我会建议一次写一行文件来找到你想要编辑的行。
答案 1 :(得分:1)
如果您不太可能想手动编辑配置文件,那么使用JSON是一种很好的方法,但如果您需要能够跳转,那么“旧学校”.INI样式配置文件更容易使用用文本编辑器。
我建议用4种方法创建一个简单的组件: i)将配置读入变量 ii)获取配置参数的值 iii)更新配置参数的值 iv)将整个配置写回文件
正如其他人所指出的那样,无论如何你最终都会更新整个文件,除非文件很大,否则你的应用程序性能影响可能会很小。保持代码简单可能会带来更大的好处。