TxtFileUtil-文本文件操作工具类

本文介绍了一个用于处理小文本文件的Java工具类-TxtFileUtil,包括读取、写入和追加文件的核心API。该类提供了一些默认参数的方法重载,并且部分功能需要JDK8支持。
摘要由CSDN通过智能技术生成

在写工具类或进行文本分析时, 对小文本文件的读写是一种很常见的操作. 对于小文件文件, 一次性读取到内存, 然后再做分析处理, 比边读边处理更快. 因此笔者封装了一个工具类, 专门用于读写小文本文件.

1. API 简介

  • 核心API 分为三类: 读取文件, 写入文件, 追加文件. 笔者针对常用的默认参数做了一定的方法重载.
  • filter API 需要jdk8 支持
方法签名 方法描述
List readFile(String filePath) 读取文件内容, 默认以UTF-8编码打开文件
public static List readFile(String filePath, String encoding) 读取文件内容, 以指定编码格式打开文件
public static List readFile(String filePath, boolean ignoreEmptyLine) 读取文件内容, 可忽略空行
public static List readFile(String filePath, boolean ignoreEmptyLine, String encoding) 读取文件内容, 以指定编码格式打开文件, 可忽略空行
public static List readFile(String filePath, Predicate filter) 读取文件内容, 可自定义过滤器, 过滤行. 默认以UTF-8编码打开文件
public static List readFile(String filePath, Predicate ignoreFilter, String encoding) 读取文件内容.
public static void writeFile(List contents, String filePath) 向文件中追加内容. 默认以UTF-8编码写入文件. 当文件已存在时, 进行文件覆盖
public static void writeFile(List contents, String filePath, boolean overrideFile) 向文件中追加内容, 默认以UTF-8编码写入文件
public static void writeFile(List contents, String filePath, String encoding) 向文件中追加内容, 当文件存在时, 会进行文件覆盖
public static void writeFile(List contents, String filePath, String encoding, boolean overrideFile) 向文件中追加内容.
public static void appendFile(List contents, String filePath) 向文件中追加内容, 默认以UTF-8格式写入文件, 当文件不存在时创建新的文件.
public static void appendFile(List contents, String filePath, boolean creatNewFile) 向文件中追加内容, 默认写入文件编码为UTF-8
public static void appendFile(List contents, String filePath, String encoding) 向文件中追加内容, 当文件不存在时, 创建新文件
public static void appendFile(List contents, String filePath, String encoding, boolean creatNewFile) 向文件中追加内容.

2. TxtFileUtil 源码

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;

/**
 * @Description: 文本文件读写, 当文件内容过大时, 需要考虑内存
 * @author: zongf
 * @date: 2019-06-11 14:37
 */
public class TxtFileUtil {
   

    /** utf-8 编码*/
    private static String ENCODING_UTF8 = "UTF-8";

    /** gbk 编码 */
    private static String ENCODING_GBK = "GBK";

    /** gb2312 编码 */
    private static String ENCODING_GB2312 = "GB2312";

    /**
     * @Description: 读取文件内容, 默认以UTF-8编码打开文件
     * @param filePath 文件路径, 支持相对路径和绝对路径
     * @return List<String> 文件内容
     * @author: zongf
     * @time: 2019-06-11 15:09:28
     */
    public static List<String> readFile(String filePath){
   
        return readFile(filePath, line -> true, ENCODING_UTF8);
    }

    /**
     * @Description: 读取文件内容, 以指定编码格式打开文件
     * @param filePath 文件路径, 支持相对路径和绝对路径
     * @param encoding 文件编码
     * @return List<String> 文件内容
     * @author: zongf
     * @time: 2019-06-11 15:09:28
     */
    public static List<String> readFile(String filePath, String encoding){
   
        return readFile(filePath, line -> true, encoding);
    }

    /**
     * @Description: 读取文件内容, 可忽略空行
     * @param filePath 文件路径, 支持相对路径和绝对路径
     * @param ignoreEmptyLine 忽略空行
     * @return List<String> 文件内容
     * @author: zongf
     * @time: 2019-06-11 15:09:28
     */
   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值