Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解析文件并修改内容_Java - Fatal编程技术网

Java 解析文件并修改内容

Java 解析文件并修改内容,java,Java,我有一个文件,其中包含以下模式的行user:pass:role。现在我正在阅读整行内容,然后用split解析字符串,修改值并创建一个新字符串,最后将这个新字符串写入文件(删除旧字符串) 相反,我正在寻找一种逐个变量读写变量的方法。例如,文件内容为: jake:1234:developer laura:qwerty:analyst 如果我想将Laura的角色改为dba,我想做如下工作: while file not empty do user = read file till ':'

我有一个文件,其中包含以下模式的行
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
我怎么能这样做

我读过这个关于修改文件的问题,但答案是使用所需的值创建一个新文件,然后删除旧文件

编辑

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

laura:qwerty:analyst
jake:1234:dba

小改动,但我宁愿遵守顺序。

您已经读过的答案是一致的:一般来说,同时读写同一个文件不是一个好主意。

做这项工作的常用方法是使用临时文件。

你可以按类来做,但因为字段大小不是固定的这将是困难而复杂的。

创建新文件并删除旧文件有什么问题吗?@markusw我宁愿不这样做。你已经做了什么?