去掉重复值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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值