【发布时间】:2022-10-16 00:49:45
【问题描述】:
如何将我编辑的文件行添加到我从 txt 文件中获取内容的同一行?
1,House mack,house,123 mack road,155,40000,40000,2022-09-29,no,Bill,123456,bill@gmail.com,12 Bill road,Jack,456789,jack@gmail.com,23 Jack road,John,789632,john@gmail.com,34 John road,
2,House John,house,123 John road,183,50000,50000,2022-09-10,yes,Bill,123456,bill@gmail.com,12 Bill road,Jack,456789,jack@gmail.com,23 Jack road,John,789632,john@gmail.com,34 John road,
但是我对 txt 文件的输出看起来像这样
1,House mack,house,123 mack road,155,40000,111,2022-09-29,no,Bill,123456,bill@gmail.com,12 Bill road,Jack,456789,jack@gmail.com,23 Jack road,John,789632,john@gmail.com,34 John road,
1,House mack,house,123 mack road,155,40000,111,2022-09-29,no,Bill,123456,bill@gmail.com,12 Bill road,Jack,456789,jack@gmail.com,23 Jack road,John,789632,john@gmail.com,34 John road,
如何让我的程序仅在已编辑的行中替换旧行,而不理会其他文件内容?
if (option.equals("cp")) {
Array.set(values, 6, newPaid);
findString = "\n" + values[0] + "," + values[1] + "," + values[2] + ","
+ values[3] + "," + values[4] + "," + values[5] + "," + values[6] + ","
+ values[7] + "," + values[8] + "," + values[9] + "," + values[10] + ","
+ values[11] + "," + values[12] + "," + values[13] + "," + values[14] + ","
+ values[15] + "," + values[16] + "," + values[17] + "," + values[18] + ","
+ values[19] + "," + values[20] + ",";
replaceLines(findString);
System.out.println("Your Price has been changed and contents has been successfully updated! ");
break;
我的方法包含所有计算
public static void replaceLines(String findString) {
try {
BufferedReader file = new BufferedReader(new FileReader("tasks.txt"));
StringBuffer inputBuffer = new StringBuffer();
String line;
while ((line = file.readLine()) != null) {
line = findString;
inputBuffer.append(line);
inputBuffer.append('\n');
}
file.close();
// write the new string with the replaced line OVER the same file
FileOutputStream fileOut = new FileOutputStream("tasks.txt");
fileOut.write(inputBuffer.toString().getBytes());
fileOut.close();
} catch (Exception e) {
System.out.println("Problem reading file.");
}
}
【问题讨论】:
-
你在正确的球场,但应该使用
java.nio.file.Files.readAllLines,寻找元素,替换它,然后再次写出集合。或者使用一些支持持久性的string list 类。在你更换的那一刻全部带有“findString”的行,而不仅仅是选定的行,或者一个选择一 -
如果您准确解释您的“编辑”是如何工作的,这也会有所帮助
标签: java arraylist while-loop txt