java FileUtils,写入数据,读取文件

1,效果图:

在这里插入图片描述

2,前提:由于某个页面要做数据缓存,

1,第一次打开页面,传参到后台,后台查询并读取数据,写入json文件中,
2,第二次打开页面的时候,传参到后台,若存在该json文件并在时间内,直接读取json文件中的数据即可

3,关键点:

向文件中写入数据

1,文件名,文件位置,数据,数据格式,数据编码

FileUtils.writeStringToFile(file,JSON.toJSONString(result),“UTF-8”);

读取文件中的数据

1,文件位置,数据编码,数据输出格式

JSON.parseObject(FileUtils.readFileToString(file,“UTF-8”),HashMap.class)

4,完整代码:


  	@RequestMapping("/getList")
    @ResponseBody
    public Map getList(@RequestParam HashMap<String,String> paraMap, HttpServletRequest request,Model model) {

		 try {
            SessionUserInfoEntity sessionUserInfoEntity = RightUtil.getCurrentUser(request);
            
            //josn文件命名的关键参数提取
            LinkedHashMap linkedHashMap=new LinkedHashMap();
            linkedHashMap.put("id", paraMap.get("id"));
            linkedHashMap.put("name", paraMap.get("name"));
            linkedHashMap.put("uid", sessionUserInfoEntity.getUid());
            linkedHashMap.put("st",paraMap.get("startdate"));
            linkedHashMap.put("et",paraMap.get("enddate"));
            
			//文件名设置
			StringBuilder key=new StringBuilder();
            key.append(paraMap.get("id").replaceAll(" ","").replaceAll("-","")).append("__");
            key.append(sessionUserInfoEntity.getUid().replaceAll(" ","").replaceAll("-","")).append("__");
            key.append(paraMap.get("startdate").replaceAll(" ","").replaceAll("-","")).append("__");
            key.append(paraMap.get("enddate").replaceAll(" ","").replaceAll("-","")).append("__");
            key.append(paraMap.get("name").replaceAll(" ","").replaceAll("-","")).append("__");
            
            //文件位置设置,存放在log文件夹中
            String cachekeyfileName=ApplicationHome.getApplicationLog()+"/"+key+".json";
			//新建一个文件类
			File file = new File(cachekeyfileName);
			//如果存在该文件,或者在一分钟内,直接读取json文件并返回数据
            if(file.exists()&&System.currentTimeMillis()-file.lastModified()<60*1000){
               return JSON.parseObject(FileUtils.readFileToString(file,"UTF-8"),HashMap.class);
            }


 			HashMap<String, Object> result = createResult(true, "");
 			List list= jdbcTemplate.queryForList(sql);
            result.put("list", list);
            //写入文件
            FileUtils.writeStringToFile(file,JSON.toJSONString(result),"UTF-8");
	}
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是 Java 读取文件内容和写文件的工具类的代码示例: ```java import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; public class FileUtils { /** * 读取文件的内容 * @param filePath 文件路径 * @return 文件内容的字符串 * @throws IOException */ public static String readFile(String filePath) throws IOException { byte[] encoded = Files.readAllBytes(Paths.get(filePath)); return new String(encoded, StandardCharsets.UTF_8); } /** * 写文件 * @param filePath 文件路径 * @param content 文件内容 * @throws IOException */ public static void writeFile(String filePath, String content) throws IOException { File file = new File(filePath); if (!file.exists()) { file.createNewFile(); } FileWriter fw = new FileWriter(file.getAbsoluteFile()); BufferedWriter bw = new BufferedWriter(fw); bw.write(content); bw.close(); } } ``` 上面的代码中,我们定义了一个 `FileUtils` 工具类,其中包含了两个静态方法:`readFile` 和 `writeFile`。`readFile` 方法用于读取文件的内容,接受一个文件路径参数,返回文件内容的字符串。`writeFile` 方法用于写文件,接受一个文件路径和文件内容两个参数,将文件内容写入指定的文件中。 注意,上面的代码使用了 Java 7 引入的 `Files` 类和 `Paths` 类,用于更简单地读取文件的内容。如果使用的是 Java 6 或更早的版本,可以使用 `FileInputStream` 和 `BufferedReader` 来读取文件的内容。写文件的部分使用了 `FileWriter` 和 `BufferedWriter` 类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值