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