【Java】删除文本文档里的多余换行

主要功能:删除文本文档里的多余换行

核心原理:读取文本每一行的内容,保存到tmp中,检查是否为空。如果是,则略过此行;否则将tmp写入新文件。

背景原因:用爬虫爬取网页内容的时候,经常因为这样那样的原因,下载下来的文本内容里出现了许多毫无意义的空白(主要为多余换行),由于不会用Python,所以用java完成这个功能。

/**
 * 删除文本内的多余换行
 */

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class deleteSomthingFromTxt {

    public static void main(String[] args) {

        //写入原始文件完整路径名
        File file=new File("D:\\文件夹\\我的原始文本.txt");
        InputStream is=null;
        BufferedReader br = null;
        String tmp;
        FileWriter writer=null;
        try {
            is=new BufferedInputStream(new FileInputStream(file));
            br = new BufferedReader(new InputStreamReader(is, "utf-8"));
            /**
             * 补充更改后文件完整路径名,
             * 例如D:\\文件夹\\我的最终文本.txt
             * FileWriter会创建或者覆写这个文件
             * 如果不希望覆写,而想要在原文内容后追加
             * 请改为FileWriter("D:\\文件夹\\我的最终文本.txt",true);
             */
            writer = new FileWriter("D:\\文件夹\\我的最终文本.txt");

            /**
             * 核心功能代码部分
             * if里面的内容可以任意更换
             * 但只能匹配readline(),也就是一行里的内容
             */
            while((tmp=br.readLine())!=null){
                if(tmp.equals(""));
                else
                    //将读到的readline()一行一行重新写入文件
                    writer.write(tmp+"\n");
            }
            writer.close();
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

效果演示:
1.png 21.png

posted on 2020-11-02 23:15  northwest  阅读(693)  评论(0编辑  收藏  举报

导航