代码片段:Java按行读取并写文件

package cn.itoak;

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

/**
 * Project:CodeFragment
 * FullPath:cn.itoak.ReadFileByLineAndWrite
 * Date:2019/9/20
 * Time:14:07
 * Description:按行读取并写文件
 *
 * @author itoak
 * @version 1.0
 */
public class ReadFileByLineAndWrite {

    /**
     * 按行读取
     *
     * @param pathName 文件路径
     * @return 行结果
     */
    public static List<String> readFile(String pathName) throws IOException {
        List<String> strings = new ArrayList<>();
        File file = new File(pathName);
        InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file));
        BufferedReader bf = new BufferedReader(inputStreamReader);
        String str;
        while ((str = bf.readLine()) != null) {
            strings.add(str);
        }
        //关闭流
        bf.close();
        inputStreamReader.close();
        return strings;
    }

    /**
     * 写入文件
     * @param strings 内容
     * @param pathName 生成文件路径
     */
    public static void writeFile(List<String> strings, String pathName) throws IOException {
        FileWriter fileWriter = new FileWriter(new File(pathName));
        BufferedWriter bw = new BufferedWriter(fileWriter);
        for (String str : strings){
            bw.write(str + "\t\n");
        }
        //关闭流
        bw.close();
        fileWriter.close();
    }

    public static void main(String[] args) throws IOException {
        //读文件
        List<String> strings = readFile("E:/a.txt");
        //写文件
        writeFile(strings, "E:/b.txt");
    }
}

2019年12月02日更新:以上是笔者自己写的,其实Apache的common-io包下已经封装了FileUtils工具类,包含以上功能

  • 依赖
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>
  • 使用示例
public static void main(String[] args) throws IOException {
        List<String> list = FileUtils.readLines(new File("/data"), Charset.defaultCharset());
        FileUtils.writeLines(new File("/data1"), list);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值