[英]Replacing a line of text in Java
我有一個自動櫃員機,我需要打開一個文本文件,其中包含以下格式的帳戶信息:
文件名為Accountnfomation.txt。
基本上,我需要能夠根據用戶需要替換/更改“余額”值。 我知道如何在文本文件中找到帳號,但是我不知道如何跳過接下來的兩行並進行編輯。 這是我編寫的一些代碼:
try {
Scanner Account= new Scanner(new File ("AccountInformation.txt"));
FileOutputStream Account2= new FileOutputStream ("AccountInformation.txt",true);
while (Account.hasNextLine()) {
String nextToken = Account.next();
if (nextToken.equalsIgnoreCase(MyLoginID)) { //searches for specific match
// the idea here would to be to edit balance amount
}
}
}
到目前為止,這就是我所擁有的。 它會找到帳號,但是我不知道下一步該怎么做。
在您遇到的問題中,最好先更改,更改並保持其他所有內容不變。 不幸的是,文件不是行的集合,而是字節的集合。 如果要將“ 10”更改為“ 1000”,則需要插入一些新的字節,這意味着其后面的所有內容都需要向下移動幾個字節(假設為utf8,則大概為四個左右)。
在現實世界中,我們通過不將數據存儲在平面文件中來解決此問題。 假設您仍然想要一種非常簡單的,基於文件的,人類可讀的格式:
使用nio:
Path path = FileSystems.getDefault().getPath(filePath);
try {
List<String> lines = Files.readAllLines(path);
} catch (IOException e) {
e.printStackTrace();
}
因此,根據您的格式余額,索引為3(沒有任何空行)。 因此,您調用lines.set(3, newBalance);
,再次遍歷這些行,將它們添加到另一個StringBuilder
然后使用StringBuilder
的toString()
方法將內容存儲在文件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.