//将某一目录下的多个文件合并,并去除文件行中重复信息
package test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.util.HashSet;
import java.util.Set;
public class ReadFileToNewFile {
public void readAndWrite() throws IOException
{
//利用Set去除冗余信息
Set<String> setString = new HashSet<String>();
String dirPath ="D:\\s\\";
File file = new File(dirPath);
File[] listfile = file.listFiles();
for(int i =0 ;i<listfile.length;i++)
{
File f = new File(dirPath+listfile[i].getName());
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String str= null;
while((str=br.readLine())!=null)
{
setString.add(str);
}
isr.close();
}
File f3 = new File("src/count.txt");
FileOutputStream fos = new FileOutputStream(f3,true);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
PrintStream ps = new PrintStream(fos);
for(String str:setString)
{
ps.println(str);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ReadFileToNewFile readFileToNewFile = new ReadFileToNewFile();
try {
readFileToNewFile.readAndWrite();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}