java常用工具类—— 文件读取的操作类

Posted liusandy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java常用工具类—— 文件读取的操作类相关的知识,希望对你有一定的参考价值。

  • 定义常用的文件类型
public class FileType {
    /**
     * 文件头类型
     */
    public static final String XML_FILE = "text/xml;charset=UTF-8";
    public static final String PDF_FILE = "application/pdf";
    public static final String PDG_FILE = "application/x-png";
    public static final String JPG_FILE = "application/x-jpg";
    public static final String WORD_FILE = "application/msword";
    public static final String EXCEL_FILE = "application/x-xls";
    /**
     * 文件类型
     */
    public static final String XLS = "xls";
    public static final String XLSX = "xlsx";
    public static final String DOC = "doc";
    public static final String TXT = "txt";
    public static final String XML = "xml";
    public static final String PNG = "png";
    public static final String JPG = "jpg";
    public static final String PDF = "pdf";
}
  • 文件操作类
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.zip.DataFormatException;
import java.util.zip.Deflater;
import java.util.zip.Inflater;

/**
 * @author Lius
 * @date 2018/10/26 15:58
 * @description 文件工具类
 */
public class FileUtils {
    /**
     * 关闭文件流
     *
     * @author Lius
     * @date 2018/10/26 16:32
     */
    public static void closeBufferedReader(BufferedReader bufferedReader) {
        if (bufferedReader != null) {
            try {
                bufferedReader.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 判断文件是否存在
     *
     * @author Lius
     * @date 2018/10/27 10:38
     */
    public static boolean isExistFile(String filePath) {
        File file = new File(filePath);
        if (!file.exists()) {
            return false;
        }
        return true;
    }

    /**
     * 读文件
     *
     * @param filePath 读取文件路径
     * @return 返回字符串
     * @author Lius
     * @date 2018/10/26 15:59
     */
    public static String readFile(String filePath) {
        File file = new File(filePath);
        if (!file.exists()) {
            return null;
        }
        StringBuffer stringBuffer = null;
        BufferedReader bufferedReader = null;
        try {
            bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8));
            stringBuffer = new StringBuffer();
            String line = null;
            while ((line = bufferedReader.readLine()) != null) {
                if ("
".equals(line)) {
                    continue;
                }
                stringBuffer.append(line).append("
");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            closeBufferedReader(bufferedReader);
        }
        return stringBuffer.toString();
    }

    /**
     * 文件读取
     *
     * @param filePath 问价路径
     * @return 返回二进制
     * @author Lius
     * @date 2018/10/26 16:45
     */
    public static byte[] readFileByByte(String filePath) {
        File file = new File(filePath);
        if (!file.exists()) {
            return null;
        }
        byte[] bytes = null;
        try {
            bytes = Files.readAllBytes(file.toPath());
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
        return bytes;
    }

    /**
     * 根据文件路径获得文件名
     *
     * @author Lius
     * @date 2018/10/27 10:19
     */
    public static String getFileName(String filePath) {
        String[] splits = filePath.split("\\");
        return splits[splits.length - 1];
    }

    /**
     * 通过文件名获得文件类型
     *
     * @param fileName 文件名
     * @author Lius
     * @date 2018/10/26 17:44
     */
    public static String getFileTypeByName(String fileName) {
        String[] splits = fileName.split("\.");
        return splits[splits.length - 1];
    }

    /**
     * 通过文件路径获得文件类型
     *
     * @param filePath 文件路径
     * @author Lius
     * @date 2018/10/27 10:27
     */
    public static String getFileTypeByPath(String filePath) {
        return getFileTypeByName(getFileName(filePath));
    }


    /**
     * 文件压缩
     * @author Lius
     * @date 2018/10/29 13:55
     */
    public static byte[] compress(byte input[]) {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        Deflater compressor = new Deflater(1);
        try {
            compressor.setInput(input);
            compressor.finish();
            final byte[] buf = new byte[2048];
            while (!compressor.finished()) {
                int count = compressor.deflate(buf);
                bos.write(buf, 0, count);
            }
        } finally {
            compressor.end();
        }
        return bos.toByteArray();
    }

    /**
     * 文件解压缩
     * @author Lius
     * @date 2018/10/29 13:56
     */
    public static byte[] uncompress(byte[] input) throws DataFormatException {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        Inflater decompressor = new Inflater();
        try {
            decompressor.setInput(input);
            final byte[] buf = new byte[2048];
            while (!decompressor.finished()) {
                int count = decompressor.inflate(buf);
                bos.write(buf, 0, count);
            }
        } finally {
            decompressor.end();
        }
        return bos.toByteArray();
    }
}

以上是关于java常用工具类—— 文件读取的操作类的主要内容,如果未能解决你的问题,请参考以下文章

elasticsearch代码片段,及工具类SearchEsUtil.java

[Java I/O] TextFile 工具类

java中对文件进行读写操作的基本类是啥?

在Android中,如何将数据从类传递到相应的布局/片段文件?

JSON到POJO作为使用jackson java的对象类

java怎么使用io流读取一个文件夹里面