解析文件并修改内容

时间:2014-04-02 13:36:28

标签: java

我有一个文件,其中包含模式user:pass:role之后的行。现在我正在阅读整行,然后我用split解析字符串,修改值并创建一个新字符串,最后将这个新字符串写入文件(删除旧字符串)。

相反,我正在寻找一种通过变量读写变量的方法。例如,文件内容为:

jake:1234:developer
laura:qwerty:analyst

如果我想将Laura的角色改为dba,我想做类似的事情:

while file not empty do
    user = read file till ':'
    if user == "laura" then
        read file till next ':'
        modify "analyst" to "dba"
    else readline

我怎么能这样做?

我已经阅读了有关修改文件Modifying existing file content in Java的问题,但答案是创建一个包含所需值的新文件,然后删除旧文件。

修改

所有这些都是因为如果我按照我现在实现的方法,新行最终会附加到文件中。例如,在上面的示例中,如果我将Jake的角色更改为dba,则文件将为:

laura:qwerty:analyst
jake:1234:dba

轻微改变,但我宁愿保留订单。

2 个答案:

答案 0 :(得分:2)

你已经读过的答案是同等的:一般来说,同时读写同一个文件并不是一个好主意。
执行此任务的常用方法是使用临时文件。

答案 1 :(得分:0)

您可以通过RandomAccessFile课程执行此操作,但由于字段大小未固定,因此会很难且很复杂。