一次数据清洗引发的思考

在SpringBoot项目中,本地环境能正常读取文件流进行数据清洗,但在test和st环境部署时因文件位于jar包内导致无法读取。问题源于Spring无法以File形式访问jar内的文件。解决方案包括使用resource.getInputStream()读取文件内容,或者改变打包方式为tar包并部署时解压。主要代码修改涉及将文件流读取替换为资源流读取。
摘要由CSDN通过智能技术生成

参考:

https://blog.csdn.net/u013084266/article/details/112238267

https://blog.csdn.net/qq_18748427/article/details/78606432

现象:

springboot项目读文件流进行数据清洗,本地环境可以读取到数据源,部署到test环境和st环境则报错读不到数据源:cannot be resolved to absolute file path because it does not reside in the file system: jar

原因:

打包之后,spring没办法通过File的形式访问jar包里面的文件。

解决方式1:

使用resource.getInputStream()读取文件内容。

报错代码:

   public void dataUpdate2() {
        Long startTime = System.currentTimeMillis();
        String fileName = "mbk_ctr_usr_detail-2.txt";
        int i=0;
        int j=0;
        int k=0;
        int h=0;
        try {
            File file = ResourceUtils.getFile("classpath:" + fileName);
            if (file.isFile() && file.exists()) {
                InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8");
                BufferedReader br = new BufferedReader(isr);
           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值