我是靠谱客的博主 危机发箍,最近开发中收集的这篇文章主要介绍基于lambda的文件读取工具类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

import cn.hutool.core.util.ObjectUtil;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @Description 文件读取
 * @Author li.x
 * @Date 2020/11/5 10:13
 */
public class FileReadUtils {
    public static void main(String[] args) {
        String path = "";

/*        //读取全部内容
        String allContent = FileReadUtils.readFile(path);
        System.out.println(allContent);
        System.out.println();

        //跳过首几行
        String skipStartcontent = FileReadUtils.readFile(path, 1);
        System.out.println(skipStartcontent);
        System.out.println();

        //去掉尾几行
        String skipStartAndEndcontent = FileReadUtils.readFile(path, 0, 1);
        System.out.println(skipStartAndEndcontent);
        System.out.println();*/


        //截取中间端,去掉首尾几行
        String content = FileReadUtils.readFile(path, 1, 1);
        System.out.println(content);
    }

    /**
     * @Description 读取文件全部内容
     * @Author li.x
     * @Param path:文件路径
     * @Return
     * @Date 2020/11/5 10:22
     */
    public static String readFile(String path) {
        return read(path, 0, 0);
    }

    /**
     * @Description 读取文件全部内容
     * @Author li.x
     * @Param path:文件路径 skipStartIndex:跳过起始行数
     * @Return
     * @Date 2020/11/5 10:22
     */
    public static String readFile(String path, Integer skipStartIndex) {
        return read(path, skipStartIndex, 0);
    }

    /**
     * @Description 文件读取实现,跳行截取中段。
     * @Author li.x
     * @Param path:文件路径  skipStartIndex:跳过行数   skipReciprocalIndex:截取到末尾倒数行数
     * @Return
     * @Date 2020/11/5 10:22
     */
    public static String readFile(String path, Integer skipStartIndex, Integer skipReciprocalIndex) {
        return read(path, skipStartIndex, skipReciprocalIndex);
    }


    /**
     * @Description 文件读取实现,跳行截取中段。
     * @Author li.x
     * @Param path:文件路径  skipStartIndex:跳过行数   skipReciprocalIndex:截取到末尾倒数行数
     * @Return
     * @Date 2020/11/5 10:15
     */
    private static String read(String path, Integer skipStartIndex, Integer skipReciprocalIndex) {
        if (!new File(path).exists()) {
            return null;
        }
        Stream<String> fileLines = null;
        try {
            if (ObjectUtil.isEmpty(skipStartIndex)) {
                skipStartIndex = 0;
            }
            if (ObjectUtil.isEmpty(skipReciprocalIndex)) {
                skipReciprocalIndex = 0;
            }
            fileLines = Files.lines(Paths.get(path)).skip(skipStartIndex);
            String[] fileArr = fileLines.toArray(String[]::new);
            Supplier<Stream<String>> streamSupplier = () -> Stream.of(fileArr);
            return streamSupplier.get().limit(streamSupplier.get().count() - skipReciprocalIndex).collect(Collectors.joining());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fileLines != null) {
                fileLines.close();
            }
        }
        return null;
    }

}

最后

以上就是危机发箍为你收集整理的基于lambda的文件读取工具类的全部内容,希望文章能够帮你解决基于lambda的文件读取工具类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(25)

评论列表共有 0 条评论

立即
投稿
返回
顶部