java读取本地目录的文件转换为list

简介: java读取本地目录的文件转换为list

不在沉默中爆发,就在沉默中灭亡。——鲁迅

我读取了我的全部博客内容并转换成了一个List

代码如下:

import java.io.*;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
class Scratch {
    public static void main(String[] args) throws Exception {
        List<File> fileNames = getFileNames("D:/file/blog/backup/blog/source/_posts/");
        List<String> collect = fileNames.parallelStream().map(Scratch::readFile).collect(Collectors.toList());
        collect.forEach(System.out::println);
    }
    private static List<File> getFileNames(String filePath) {
        File file = new File(filePath);
        //判断文件或目录是否存在
        if (!file.exists()) {
            System.err.println("【" + filePath + " not exists】");
        }
        return Optional.ofNullable(file.listFiles()).map(Arrays::asList).orElseGet(Collections::emptyList);
    }
    /**
     * 将文本文件中的内容读入到buffer中
     *
     * @param buffer buffer
     * @param file   文件路径
     * @throws IOException 异常
     * @author cn.outofmemory
     * @date 2013-1-7
     */
    public static void readToBuffer(StringBuffer buffer, File file) throws IOException {
        InputStream is = new FileInputStream(file);
        String line; // 用来保存每行读取的内容
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        line = reader.readLine(); // 读取第一行
        while (line != null) { // 如果 line 为空说明读完了
            buffer.append(line); // 将读到的内容添加到 buffer 中
            buffer.append("\n"); // 添加换行符
            line = reader.readLine(); // 读取下一行
        }
        reader.close();
        is.close();
    }
    /**
     * 读取文本文件内容
     *
     * @param file 文件所在路径
     * @return 文本内容
     * @throws IOException 异常
     * @author cn.outofmemory
     * @date 2013-1-7
     */
    public static String readFile(File file) {
        StringBuffer sb = new StringBuffer();
        try {
            readToBuffer(sb, file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sb.toString();
    }
}

效果如下:

相关文章
|
1月前
|
Java
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
31 1
|
1月前
|
Java
java中替换文件内容
java中替换文件内容
14 1
|
29天前
|
Java
java8中List对象转另一个List对象
java8中List对象转另一个List对象
39 0
|
6天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
33 3
|
1天前
|
存储 前端开发 Java
Java实现文件分片上传
Java实现文件分片上传
6 0
|
9天前
|
数据库
开发指南009-从list导出excel文件
从数据库返回一般是对象的列表,平台底层提供了从list转为excel文件的方法
|
26天前
|
Java
Java使用List去重的四中方式
Java使用List去重的四中方式
19 6
|
30天前
Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘id‘ in field list is ambiguous
Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘id‘ in field list is ambiguous
18 0
|
1月前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
94 3
|
1月前
|
Java
使用java将字符串写入到指定的文件中
使用java将字符串写入到指定的文件中
11 0