Hutool文件读取与前端渲染实战

Hutool文件读取基础

Hutool的FileUtil类提供多种文件读取方式:

// 读取文本文件
String content = FileUtil.readUtf8String("test.txt");

// 按行读取
List<String> lines = FileUtil.readUtf8Lines("test.txt");

// 读取为字节数组
byte[] bytes = FileUtil.readBytes("test.bin");

前端数据渲染准备

将读取的数据转换为前端可识别格式,推荐使用JSON:

// 使用Hutool的JSONUtil转换
List<Data> dataList = parseData(lines); // 自定义解析逻辑
String json = JSONUtil.toJsonStr(dataList);

接口暴露与联调

通过Spring Boot创建REST接口:

@RestController
@RequestMapping("/api/file")
public class FileController {
    
    @GetMapping("/content")
    public String getFileContent() {
        String content = FileUtil.readUtf8String("data.json");
        return JSONUtil.parseObj(content).toString();
    }
}

前端Vue.js调用示例

axios.get('/api/file/content')
  .then(response => {
    this.dataList = response.data;
  })
  .catch(error => {
    console.error('文件读取失败:', error);
  });

联调常见问题处理

文件路径问题:建议使用绝对路径或classpath路径

// 获取resources目录下的文件
ClassPathResource resource = new ClassPathResource("data.json");
String path = resource.getPath();

编码问题:确保前后端统一使用UTF-8编码

// 写入文件时指定编码
FileUtil.writeString(content, "data.json", CharsetUtil.UTF_8);

性能优化建议

大文件处理采用流式读取:

FileReader reader = FileReader.create(new File("large.txt"), CharsetUtil.UTF_8);
reader.read(buffer -> {
    // 分块处理逻辑
});

安全注意事项

文件上传校验:限制文件类型和大小

// 检查文件扩展名
String extName = FileUtil.extName(uploadFile.getOriginalFilename());
if(!ArrayUtil.contains(new String[]{"txt","json"}, extName)){
    throw new IllegalArgumentException("非法文件类型");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值