tika判断是否是纯文本文件

判断是否是纯文本文件

import com.google.common.collect.Lists;
import com.jdl.jscaffold.exception.BusinessException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.filefilter.TrueFileFilter;
import org.apache.tika.Tika;

import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.List;

@Slf4j
public class FileUtils {
    public static boolean isTextFile(File file){
          Tika tika = new Tika();

          List<String> contentTypes = Lists.newArrayList(
                  "application/json",
                  "application/xml",
                  "application/xhtml+xml",
                  "application/sql",
                  "application/ld+json",
                  "application/x-yaml"
          );

          try {
              String mimeType = tika.detect(file);
              // 判断是否为纯文本类型
              if (mimeType.startsWith("text/")){
                  return true;
              }
              if (contentTypes.contains(mimeType)) {
                  return true;
              }

              return false;
          } catch (IOException e) {
              log.error("judge file text error",e);
              throw new BusinessException("判断文件" + file.getName() + "是否纯文本出现error",e);
          }
      }
}
posted @   SpecialSpeculator  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示