Java对txt文件中的内容进行排序

本文介绍了一个使用Java进行文件内容排序的方法,特别展示了如何排除特定行(例如以'-'开头的行),并提供了完整的代码示例。

如果您的文件中每行都有单词或术语,则可能需要对其进行排序。Java Arrays.sort是执行此操作的常用功能。Collections.sort()是另一个不错的说法。这是一个示例和代码。
在文件EG中,您具有以下txt。

dog 
cat
--windows
--kankan
pps
game
--annot be guaranteed 
as it is, generally speaking, 
--impossible to make any hard gu
arantees in the p
--resence of unsynchr

这是对行进行排序的代码,不包括以“-”开头的行。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
 
 
public class SortFileContent {
	public static void sortObserve() throws IOException {
		File fin = new File("c:\\input.txt");
		File fout = new File("c:\\sorted.txt");
 
 
		FileInputStream fis = new FileInputStream(fin);
		FileOutputStream fos = new FileOutputStream(fout);
 
		BufferedReader in = new BufferedReader(new InputStreamReader(fis));
		BufferedWriter out = new BufferedWriter(new OutputStreamWriter(fos));
 
		String aLine;
		ArrayList<String> al = new ArrayList<String> ();
 
 
		int i = 0;
		while ((aLine = in.readLine()) != null) {
			///得到你想要的线条,在这里我不想要的东西开始-或者清空
			if (!aLine.trim().startsWith("-") && aLine.trim().length() > 0) {
				al.add(aLine);
				i++;
			}
		}
 
		Collections.sort(al);
		//将排序后的内容输出到文件中,
		for (String s : al) {
		    System.out.println(s);
		    out.write(s);
			out.newLine();
			out.write("-----------------------------------------");
			out.newLine();
		}
 
		in.close();
		out.close();
	}
}

最后,您在sorted.txt文件中获得以下内容。

arantees in the p
-----------------------------------------
as it is, generally speaking, 
-----------------------------------------
cat
-----------------------------------------
dog 
-----------------------------------------
game
-----------------------------------------
pps
-----------------------------------------

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值