网站单页模板怎么安装,dw软件代码大全,wordpress删除仪表盘,扫码推广平台哈喽#xff0c;大家好#xff0c;我是灰小猿#xff0c;一个超会写bug的程序猿#xff01;
今天来记录一个在项目实战中比较实用的方法#xff0c;主要是针对一些需要存在简单数据文件导入导出的场景#xff0c;如#xff1a;数据文件的简单备份、软件升版前后配置导入…哈喽大家好我是灰小猿一个超会写bug的程序猿
今天来记录一个在项目实战中比较实用的方法主要是针对一些需要存在简单数据文件导入导出的场景如数据文件的简单备份、软件升版前后配置导入导出等场景
这个方法可以作为一个工具类来使用可以将想要导出成文件的数据通过导出方法直接导出为json或ini文件也可以将导出的文件直接通过导入方法进行解析返回原先的数据模型。
以导出用户数据为例
数据模型如下
import lombok.Data;
import lombok.ToString;Data
ToString
public class User {private String address;private String tel;private int number;private boolean can;
}
首先通过导出方法将数据导出为json或ini文件 /*** 导出json文件*/public static void exportJsonFile(String jsonData, String exportPath) {// 生成json格式文件try {// 保证创建一个新文件File file new File(exportPath);if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}if (file.exists()) {file.delete();}file.createNewFile();// 将格式化后的字符串写入文件Writer write new OutputStreamWriter(new FileOutputStream(file), UTF-8);write.write(jsonData);write.flush();write.close();} catch (Exception e) {e.printStackTrace();}}
之后如果需要再次将导出的数据导入到软件只需要导入该文件下述方法将会自动解析文件并将数据返回出去 /*** 导入json文件*/public static Object importJsonFile(String importFilePath) {File file new File(importFilePath);int ch;String jsonStr ;try (Reader reader new InputStreamReader(new FileInputStream(file), Utf-8);) {StringBuffer sb new StringBuffer();while ((ch reader.read()) ! -1) {sb.append((char) ch);}jsonStr sb.toString();System.out.println(JSON.parseObject(jsonStr));} catch (Exception e) {e.printStackTrace();}return JSON.parseObject(jsonStr);}在实际使用中的调用方法如下
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.hirain.model.User;
import lombok.extern.slf4j.Slf4j;import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;Slf4j
public class JsonFileUtils {public static void main(String[] args) {MapString, Object jsonMap new HashMap();jsonMap.put(name, name1);jsonMap.put(age, 20);jsonMap.put(sex, true);User user new User();user.setAddress(深圳);user.setCan(true);user.setTel(123456);user.setNumber(110);User user2 new User();user2.setAddress(广州);user2.setCan(false);user2.setTel(888888);user2.setNumber(666);ListUser users new ArrayList();users.add(user);users.add(user2);jsonMap.put(userInfo, users);String jsonData JSON.toJSONString(jsonMap);//文件输出路径String exportFilePath D:\\下载\\testjson.json;exportJsonFile(jsonData, exportFilePath);log.info(导出成功);//解析文件实现导入MapString, Object jsonMap2 (MapString, Object) importJsonFile(exportFilePath);System.out.println(jsonMap2.toString());Object userInfo jsonMap2.get(userInfo);ListUser userJsonList JSONObject.parseArray(userInfo.toString(), User.class);System.out.println(userJsonList.toString());log.info(导入成功);}}上面的方法是以导出json文件为例如果想要导出ini文件只需要将文件的后缀名修改一下即可。
在上述方法中保存到文本的数据是一个map集合其中存放了多种类型的数据包括基本的数据类型以及复杂的对象集合解析文件之后可以正常拿到这个map集合并且通过key可以拿到对应的value
以上就是本期工具类的分享我们下期见