gpt4 book ai didi

java - 如何从Java循环中写入同一行

转载 作者:行者123 更新时间:2023-12-02 10:02:56 25 4
gpt4 key购买 nike

我编写了以下代码来在文本文件中写入一行,并使用循环递增内容。问题是我使用的方法是将每个增量写入新行而不是附加。

for (int d = 10; d >= 1; d--) {        
Path path = Paths.get("ScalModel.txt");
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);

int position = 75;
String extraLine = "MainAttack -OR-> {AttackNode" + d + "}";

lines.add(position, extraLine);
Files.write(path, lines, StandardCharsets.UTF_8);
}

我想要得到的输出是:

MainAttack -OR-> {AttackNode1, AttackNode2, AttackNode3, AttackNode4, AttackNode5, AttackNode6, AttackNode7, AttackNode8, AttackNode9, AttackNode10}

我得到的是:

MainAttack -OR-> {AttackNode1}
MainAttack -OR-> {AttackNode2}
MainAttack -OR-> {AttackNode3}
MainAttack -OR-> {AttackNode4}
MainAttack -OR-> {AttackNode5}
MainAttack -OR-> {AttackNode6}
MainAttack -OR-> {AttackNode7}
MainAttack -OR-> {AttackNode8}
MainAttack -OR-> {AttackNode9}
MainAttack -OR-> {AttackNode10}

如何修改代码以获得预期结果?

最佳答案

循环内有很多指令,必须将其放在循环外。就像我要做的那样:

Path path = Paths.get("ScalModel.txt");
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);

int position = 75;
String extraLine = "MainAttack -OR-> {";

for (int d = 10; d >= 1; d--) {
extraLine += "AttackNode"+d;
if(d==1) extraLine += "}";
else extraLine += ",";
}

lines.add(position, extraLine);
Files.write(path, lines, StandardCharsets.UTF_8);

如果您按照自己的方式进行操作,则在得到答案之前您将读写该文件 10 次。

关于java - 如何从Java循环中写入同一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55502989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com