【java文本处理】删除txt文档中的空白行

01. 目的

       用java编程实现删除txt文档中的空白行,代替手动删除,减少不必要的工作。将修改的内容存入新的文档,在修改完成后自动打开,便于查看确认对比。

02. 主要方法

  • BufferReader 逐行读出(reader.readLine( ))待处理文件内容,判断读出行是否为空行
  • 空行则不进行任何操作,非空行则写入新的文档,此过程使新生成文档丢弃空白行。
  • BufferedWriter 将不含关键字的行写入新文档
  • Runtime.getRuntime()方法调用记事本程序,直接自动打开文档查看对比。

可参考:Runtime类使用案例

03 . 源码

Black_line.java

/*
*  删除txt文档空白行
* @author WTCLAB_yd
*/
import java.io.*;
public class Black_line
{
	public static void main(String[] args)
	{
		String line=null;
		int i=0;
		File file=new File(args[0]);//用命令行参数直接写入待处理文件
		File file1=new File(args[1]);
		//判断输入的是否是TXT文档,不是则提示退出
		if(args[0].endsWith("txt")&args[1].endsWith("txt"))
		{
			//判断输入的文档是否存在,不存在则提示退出
				if(!file.exists())
				{
					System.out.println("文件不存在!");
					System.exit(0);
				}
			//输入的是TXT文档则继续往下执行		
		try
		{
			Runtime.getRuntime().exec("notepad "+args[0]);//打开待处理文件
			//读出文档数据流方式
			InputStreamReader Stream=new InputStreamReader(new FileInputStream(file),"UTF-8");//读入数据流方式设为‘UTF-8’,避免乱码
			//构造一个字符流的缓存器,存放在控制台输入的字节转换后成的字符
			BufferedReader reader=new BufferedReader(Stream);
			//写入数据流方式
			OutputStreamWriter outStream=new OutputStreamWriter(new FileOutputStream(file1),"UTF-8");
			BufferedWriter writer=new BufferedWriter(outStream);
			//以行读出文档内容至结束
			while((line=reader.readLine())!=null)
			{
	          if(line.equals(""))//判断是否是空行
			  {
				  continue;//是空行则不进行操作
		      }	
			  else
			  {
				  i++;
				  writer.write("["+i+"]");//可在文档中标出行号
				  writer.write(line+"\r\n");//将非空白行写入新文档				
			  }
			}
			//关闭数据流
			writer.close();
			reader.close();
			System.out.println("修改完成!");		
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}			
		try{
			//打开修改后的文档
			Runtime.getRuntime().exec("notepad "+args[1]);	
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}	
		}
		else
		{ 
			System.out.println("输入错误!(非.txt)");
			System.exit(0);//退出程序
		}	
	}	
}

04 . 结果演示

hlm.txt是待处理文档,rehml.txt是修改后的文档,会自动生成,无需自行新建。

执行 :java Black_line hlm.txt rehlm.txt
(命令行参数方式)

【java文本处理】删除txt文档中的空白行_第1张图片

你可能感兴趣的:(java编程,编程)