java实现替换文件中最后一行json数据
时间: 2023-09-10 19:05:04 浏览: 156
java替换文件
可以使用Java的IO流和JSON库来实现替换文件中最后一行的JSON数据。
首先,使用Java的IO流读取文件并将每行数据存储在一个List中:
```java
List<String> lines = Files.readAllLines(Paths.get("file.json"), StandardCharsets.UTF_8);
```
然后,取出最后一行数据:
```java
String lastLine = lines.get(lines.size() - 1);
```
接着,将最后一行数据转换为JSON对象:
```java
JSONObject json = new JSONObject(lastLine);
```
接下来,对JSON对象进行修改或替换操作。
最后,将修改后的JSON对象重新转换为字符串格式,并将其替换原先的最后一行数据:
```java
lines.set(lines.size() - 1, json.toString());
```
最后,将修改后的数据写入文件:
```java
Files.write(Paths.get("file.json"), lines, StandardCharsets.UTF_8);
```
完整代码示例:
```java
import org.json.JSONObject;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
public class Main {
public static void main(String[] args) throws Exception {
List<String> lines = Files.readAllLines(Paths.get("file.json"), StandardCharsets.UTF_8);
String lastLine = lines.get(lines.size() - 1);
JSONObject json = new JSONObject(lastLine);
json.put("key", "value"); // 修改或替换操作
lines.set(lines.size() - 1, json.toString());
Files.write(Paths.get("file.json"), lines, StandardCharsets.UTF_8);
}
}
```
注意:以上代码仅适用于文件中最后一行是JSON数据的情况,如果最后一行不是JSON数据,则需要进行额外的判断和处理。
阅读全文