`
dengminhui
  • 浏览: 167302 次
  • 来自: ...
社区版块
存档分类
最新评论

去掉重复值IO操作

阅读更多

 

 

 

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;   
    }   
}  
 

 

 

转载地址:http://javaboy2006.iteye.com/blog/221371

分享到:
评论

相关推荐

    检测文本内容的重复性

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

    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实现文件上传与下载 ...

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

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

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

    本篇文章将深入探讨如何使用文件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