Как переписать одну конкретную строку текстового файла в Java - PullRequest
0 голосов
/ 21 октября 2019

На рисунке ниже показан формат файла настроек для разрабатываемого веб-бота. Если вы посмотрите на строку 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 в текстовом файле, либо переписать эту строку с включенной версией.

Любые предложения или способы сделать это были бы очень благодарны.

изображение

1 Ответ

1 голос
/ 21 октября 2019

Вам нужно будет переписать весь файл, за исключением того, что длина байта файла остается неизменной после вашей модификации. Так как это не гарантируется, или выяснить это слишком громоздко, вот простая процедура:

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();
        }
    }
}

Обратите внимание, что это не лучший способ использовать очень большие файлы. Но для небольшого файла, который у вас есть, это не проблема.

...