java 文件去除空行,去重,MultipartFile转File

需求:对用户上传的文件去除空行,去重

方法一:根据HashMap键唯一实现
示例

/**
*拿到前端传来的MultipartFile流文件,去除空行和去重及去除邮箱格式不合法的地址,并将去重后的文件写入集合(使用FileUtils工具类可以将集合中的数据写入File)
* MultipartFile转file
*@param:MultipartFile流文件
*@return:total:去除空行后的总行数;map.size()去重后的总行数;lines:去重后的文件集合
*/

public static FileData filterRepeateLines(InputStream is) throws Exception {
	BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
	Map<String, String> map = new HashMap<String, String>();
	String readLine = null;
	int total = 0;
	List<String> lines = new ArrayList<String>();
	while ((readLine = bufferedReader.readLine()) != null) {
		total++;
		//去除空行
		if (readLine.equals("")) ;
		//去除邮箱格式不正确的地址
		else if (!EmailValidatorUtil.isValidFormat(readLine)) ;
		else {
			if (!map.containsKey(readLine)) {
				map.put(readLine, "1");
			}
		}
	}
	for (String key : map.keySet()) {
		lines.add(key);

	}

	FileData data = new FileData();
	data.setAfterFilterNumber(map.size());
	data.setTotalNumber(total);
	data.setList(lines);

	bufferedReader.close();
	return data;
}
补充

File toFile;
//使用FileUtils类中的writeLines方法,将集合中的数据写入文件。执行后前端传来的MultipartFile文件转换成File
FileUtils.writeLines(toFile, fileData.getList());

方法二:根据HashSet实现

//关键代码
List beforeList = new ArrayList();
for (String email : split) {
beforeList.add(email);
}
Set middleHashSet = new HashSet<>(beforeList);
List afterHashSetList = new ArrayList(middleHashSet);
// System.out.println(“删除非法格式前的集合是:”+afterHashSetList);
Iterator iterator = afterHashSetList.iterator();
while(iterator.hasNext()){
String next = iterator.next();
if(!EmailValidatorUtil.isValidFormat(next)){
num=num+1;
iterator.remove();
}
}
// System.out.println(“删除非法格式后的集合是:”+afterHashSetList);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值