簡體   English   中英

如何在 java 中重寫文本文件的特定行

[英]How to rewrite one specific line of a text file in java

下圖顯示了我正在開發的 web 機器人的設置文件格式。 如果您查看圖像中的第 31 行,您會看到它chromeVersion 這樣程序就知道要使用哪個版本的chromedriver 如果用戶輸入無效響應或將該字段留空,程序將檢測並確定版本本身並將其確定的版本保存到名為chromeVersion的字符串中。 完成此操作后,我想將該文件的第 31 行替換為

"(31) chromeVersion(76/77/78), if you don't know this field will be filled automatically upon the first run of the bot): " + chromeVersion

需要明確的是,我不想重寫整個文件,我只想更改文本文件中分配給chromeVersion的值,或者用包含的版本重寫該行。

任何建議或方法將不勝感激。

圖片

您將需要重寫整個文件,除了文件的字節長度在您修改后保持不變。 由於不能保證是這種情況或找出太麻煩,這里有一個簡單的過程:

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

public class Lab1 {

    public static void main(String[] args)  {
            String chromVersion = "myChromeVersion";
        try {
            Path path = Paths.get("C:\\whatever\\path\\toYourFile.txt");
            List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
            int lineToModify = 31;
            lines.set(lineToModify, lines.get(lineToModify)+ chromVersion);
            Files.write(path, lines, StandardCharsets.UTF_8);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

請注意,對於非常大的文件,這不是 go 的最佳方法。 但是對於您擁有的小文件,這不是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM