2015-08-05 4 views
-1

Я работаю над проектом, который предполагает, что каждый раз, когда я вызываю определенную функцию increment(), я бы редактировал последнюю строку текстового файла.Редактирование последней строки .txt-файла

Пример текстового файла:

0 0 
10 1 
50 2 
30 3 

Моя цель была бы каждый раз, когда я называю increment(), первый маркер в последней строке будет увеличиваться, например, 10. Таким образом, вызов функции сразу даст:

0 0 
10 1 
50 2 
40 3 
+2

Пожалуйста, попробуйте писать код, а затем вернуться с конкретным вопросом о том, почему этот код не вел себя, как вы ожидали , –

ответ

0

Вы можете открыть файл и прочитать его по строкам, сохранив все их в списке. Затем вы измените свой последний элемент и получить предыдущее значение для увеличения (30 в вашем примере):

List<String> lines = new ArrayList<String>(); 

try (BufferedReader br = new BufferedReader(new FileReader(file))) { //opening the file 
    String line; 
    while ((line = br.readLine()) != null) { 
     // process the line. 
     lines.append(line); 
    } 
} 

String lastLine = lines.remove(lines.size() - 1); 
lastLineTokens = lastLine.split(" "); 

String result = String.parseInt(lastLineTokens.get(0)) + " " lastLineTokens.get(1); 
lines.append(result); //here's the modified list 
Смежные вопросы