如何使用FileWriter和PrintWriter在文本文件中的特定行上书写?我不想每次都要创建一个新文件。如何使用Java替换文件中的特定行?
编辑:我可以在文件中循环,在指定的行号处获取字符串的长度,然后使用该长度在我到达该行时退格(删除字符串),然后写入新数据?
public static void setVariable(int lineNumber, String data) {
try {
// Creates FileWriter. Append is on.
FileWriter fw = new FileWriter("data.txt", true);
PrintWriter pw = new PrintWriter(fw);
//cycles through file until line designated to be rewritten is reached
for (int i = 1; i <= lineNumber; i++) {
//TODO: need to figure out how to change the append to false to overwrite data
if (i == lineNumber) {
pw.println(data);
pw.close();
} else {
// moves printwriter focus to next line (doesn't overwrite)
pw.println("");
}
}
}
}
也许这个答案会有帮助? http://stackoverflow.com/a/6477893/1797341 –