`
javaboy2006
  • 浏览: 186293 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

去掉重复值IO操作

    博客分类:
  • java
阅读更多
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

public class IoTest {

	private static final String DIR_PATH = "C:\\新建文件夹";
	private static final String WRITE_FILE_PATH = "C:\\新建文件夹\\output\\test.txt";
	private static int readFileCount = 0;

	public static void main(String[] args) {
		Set<String> userIdSet = new LinkedHashSet<String>();
		List<String> filePathList = getFileNames(DIR_PATH);
		for (String filePath : filePathList) {
			readFile(filePath, userIdSet);
		}
		writeFile(WRITE_FILE_PATH, userIdSet);
	}

	private static void writeFile(String writeFilePath, Set<String> userIdSet) {
		File dir = new File(writeFilePath.substring(0, writeFilePath
				.lastIndexOf("\\")));
		if (!dir.exists()) {
			dir.mkdirs();
		}
		File file = new File(writeFilePath);
		if (!file.exists()) {
			try {
				file.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

		FileWriter fileWriter = null;
		BufferedWriter bufferedWriter = null;
		try {
			fileWriter = new FileWriter(writeFilePath, false);// 第二个参数表示:是否为追加模式
			bufferedWriter = new BufferedWriter(fileWriter);
			int writeFileCount = 0;
			for (Object userId : userIdSet) {
				bufferedWriter.write(userId.toString());
				bufferedWriter.newLine();
				System.out.println(++writeFileCount + " : " + userId.toString()
						+ " write");
			}
			bufferedWriter.write("=====end=====");
			bufferedWriter.flush();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (bufferedWriter != null) {
					bufferedWriter.close();
				}
				if (fileWriter != null) {
					fileWriter.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	private static void readFile(String readFilePath, Set<String> userIdSet) {
		String userId;
		FileReader fileReader = null;
		BufferedReader bufferedReader = null;
		try {
			fileReader = new FileReader(readFilePath);
			bufferedReader = new BufferedReader(fileReader);
			while ((userId = bufferedReader.readLine()) != null) {
				userIdSet.add(userId);
				System.out.println(++readFileCount + " : " + userId + " read");
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (bufferedReader != null) {
					bufferedReader.close();
				}
				if (fileReader != null) {
					fileReader.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * 获得目录下所有文件完整路径
	 * @param dirPath 目录路径
	 * @return
	 */
	private static List<String> getFileNames(String dirPath) {
		List<String> filePathList = new ArrayList<String>();
		File rootFile = new File(dirPath);
		String[] nameArray = rootFile.list();
		for (int i = 0; i < nameArray.length; i++) {
			File tempFile = new File(rootFile.getPath(), nameArray[i]);
			if (tempFile.isFile()) {
				filePathList.add(dirPath + "\\" + nameArray[i]);
			}
		}
		return filePathList;
	}
}
分享到:
评论

相关推荐

    检测文本内容的重复性

    在IT领域,文本内容的重复性检测是一项重要的任务,尤其在大数据分析、文档管理或文本挖掘等...通过熟练运用C#的IO操作和字符串处理方法,我们可以构建一个高效且灵活的文本处理工具,满足各种文本重复性检测的需求。

    spring mvc拦截器过滤json中的null值

    在这个方法中,你可以检查请求参数,如果发现有null值,可以进行替换操作。 2. `postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)`: 在目标...

    RxAndroid操作符Demo

    4. `distinct()`: 去除重复的项。 5. `concatMap()`: 平行处理源项,但按顺序发射结果。 三、组合操作符 1. `merge()`: 合并多个Observable为一个Observable,同时发射所有Observable的项。 2. `zip()`: 将多个...

    python入门到高级全栈工程师培训 第3期 附课件代码

    06 阻塞IO与非阻塞IO 07 select及触发方式 08 select监听多连接 09 select与epoll的实现区别 第36章 01 异步IO 02 selectors模块介绍 03 selectors模块应用 04 作业介绍 第37章 01 selctors实现文件上传与下载 ...

    查找英语文章中要出现的单词,统计其个数

    本篇文章将深入探讨如何使用文件IO操作来查找英语文章中的特定单词并统计其出现次数。这个过程通常涉及读取文件内容、字符串处理以及计数算法。 首先,我们需要了解文件IO的基本概念。文件IO(Input/Output)是指...

    Oracle9i的init.ora参数中文说明

    这种操作模式提供可重复的读取, 并确保在同一事务处理种对相同数据的两次查询看到的是相同的值。 值范围: TRUE | FALSE 默认值: FALSE row_locking: 说明: 指定在表已更新或正在更新时是否获取行锁。如果设置为 ...

    文件数据采集.zip

    9. 数据处理和清洗:在数据采集后,可能需要进行数据清洗和预处理,如去除重复值、处理缺失值、类型转换等,这些可以通过Linq查询或自定义函数实现。 10. 安全性:考虑到数据敏感性,文件操作可能需要考虑权限控制...

    playground-java-guild-5-2018:Tech.io游乐场

    `distinct()`用于去除重复的元素,而`sorted()`则可以对流进行排序。`reduce()`操作可以将流中的所有元素组合成单个值,比如求和或求最大值。 此外,会议可能还涵盖了并行流(Parallel Streams),这是Java 8为了...

    数据准备和特征工程的详细代码实现+注释(百度飞桨)

    例如,数据清洗涉及到去除重复记录,异常值检测则需要找出不符合正常分布或逻辑的数据点,如极端值或离群点,并决定是否剔除或替换。 在数据准备阶段,我们还需要对数据进行标准化或归一化,使不同特征在同一尺度上...

    数据重删和压缩技术的应用.docx

    例如,在备份过程中,数据先经过重删处理去除重复部分,然后对剩余的唯一数据块进一步执行压缩,最终实现重删和压缩效果的叠加。 ### 二、主存储重删和压缩技术的实现 #### 2.1 主存储场景的特点 主存储场景相较于...

    DemoUtil.zip_java常用工具方法

    4. **IO操作**:如读写文件、复制文件、删除文件等,这些常用操作可以通过工具类简化。`readFileToString`和`writeStringToFile`就是两个典型的例子。 5. **数组操作**:数组的排序、查找、拷贝等也是常用的工具...

    JDK8新特性——Stream.pdf

    `distinct`方法也是一个中间操作,它可以去除流中的重复元素。在给定的代码示例中,通过调用`distinct()`方法,用户列表中的重复用户被过滤掉,最终收集到的新列表中不包含重复的用户对象。 `sorted`方法是另一个...

    300+道中高级java工程师面试题大全含答案文档下载

    1. **Hibernate离线查询去除重复项**:在Hibernate中,使用Criteria API时,可以设置ResultTransformer为`Criteria.DISTINCT_ROOT_ENTITY`来去除查询结果中的重复实体。 2. **HTTP与SMTP协议及端口**:HTTP是用于...

    SQL开发和应用优化分享

    6. 集合操作的使用和注意事项:UNION、UNION ALL、INTERSECT 和 MINUS 都是SQL中的集合操作,它们各自有不同的特性,如是否自动去除重复记录、是否可以排序等。特别是使用ORDER BY子句时,需要放在整个集合操作的...

    java工程师面试题大全100%公司笔试题你都能碰到几个

    在Hibernate中,使用dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)可以去除重复项。 2. HTTP协议及端口、SMTP协议及端口 HTTP(HyperText Transfer Protocol)是一种超文本传输协议,使用80端口。SMTP...

    imageduplicates:Java图像重复查找器

    2. 文件I/O操作:Java的`java.io`包提供了处理文件输入输出的类和接口。在这个项目中,需要读取图像文件并将其转化为可以进行哈希计算的形式。这可能包括使用`FileInputStream`、`BufferedImage`等类来读取和处理...

    CommonUtils

    这些工具类通常涵盖了字符串处理、日期时间操作、数学计算、IO流操作、集合框架操作等多个方面。下面将详细阐述这些知识点。 1. **字符串处理**: - `trim()`: 去除字符串两端的空白字符。 - `isEmpty()`: 检查...

    一期C#测试题 一期C#测试题一期C#测试题

    7. 文件操作:System.IO命名空间提供了丰富的类,如FileStream、StreamReader和StreamWriter,用于读写文件。文件操作通常涉及打开、关闭、读取、写入和追加等操作。 8. 枚举与结构:枚举(enum)用于定义一组相关...

    utils类及baseAction

    4. IO操作:文件读写、网络通信等辅助方法。 5. 其他实用功能:如生成随机数、计算哈希值、校验输入有效性等。 `Utils` 类的一个优秀实践是遵循单一职责原则,每个方法专注于完成一个特定的任务,这样可以提高代码...

    2021-2022计算机二级等级考试试题及答案No.15297.docx

    14. SQL 无重复元组:在 SQL 中,`DISTINCT` 关键字用于检索去除重复记录后的结果。 15. 完全二叉树:在一个完全二叉树中,如果一个节点没有左子节点或右子节点,那么它必然是叶子节点。 16. 光盘存储:VCD 和 DVD...

Global site tag (gtag.js) - Google Analytics