关于MInio文件的读写

对读写格式限制:

public static boolean checkPicture(String FileKey){
        //仅.xml,.ini,.cfg,.txt,.bat文件可编辑!
        List<String >  picture = Arrays.asList("xml","ini","cfg","txt","bat");
        return picture.stream().anyMatch(FileKey.toLowerCase(Locale.ROOT)::endsWith);
    }

使用BufferedInputStream读写

public static String getFileContent(String FileKey, String bucket_name) {
        String result = StrUtil.EMPTY;
        if (ObjectUtil.isNotEmpty(FileKey)) {
            if (!checkPicture(FileKey)) {
                throw new RuntimeException("不支持该种文件格式的读写!");
            }
            try {
                InputStream stream = MinIoUtil.getObject(bucket_name, FileKey, 0, null);
                if (null != stream) {
                    BufferedInputStream file = new BufferedInputStream(stream);
                    ByteArrayOutputStream boa = new ByteArrayOutputStream();
                    int len = 0;
                    byte[] buffer = new byte[1024];
                    while ((len = file.read(buffer)) != -1) {
                        boa.write(buffer, 0, len);
                    }
                    boa.flush();
                    InputStream streamCopy = new ByteArrayInputStream(boa.toByteArray());
                    String encode = CharsetConvertUtil.getEncode(new BufferedInputStream(streamCopy), false);
                    file.close();
                    result = boa.toString(encode);
                }
            } catch (Exception e) {
                throw new ServiceException("获取文件" + FileKey + "失败: " + e.getMessage());
            }
        }
        return result;
    }

使用InputStreamReader BufferedReader读写

该方法会出现乱码问题

public static String getFileContent(String FileKey, String bucket_name) {
        StringBuilder stringBuffer = new StringBuilder();
        InputStream streamRead = null;
        if (ObjectUtil.isNotEmpty(FileKey)) {
            if (!checkPicture(FileKey)) {
                throw new RuntimeException("不支持该种文件格式的读写!");
            }
            try {
                InputStream stream = MinIoUtil.getObject(bucket_name, FileKey, 0, null);
                if (null != stream) {
                    InputStreamReader reader = new InputStreamReader(stream);
                    BufferedReader buffReader = new BufferedReader(reader);
                    String strTmp = "";
                    while ((strTmp = buffReader.readLine()) != null) {
                        stringBuffer.append(String.format("%s%n",strTmp));
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return stringBuffer.toString();
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值