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.List;public class TestFile { public static void main(String[] args) { try {
//讀取thkj.txt 并進行篩選 放在集合里
BufferedReader br = new BufferedReader(new FileReader("thkj.txt"));
List<String> list = getFileList(br);   
            br.close();
            //创建新文件并判断是否存在
            File file = createFile();
            //将筛选的集合写入在创建文件中
            BufferedWriter bw = writeFile(list, file);
            bw.close();
            System.out.println("筛选成功");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
//将筛选的集合写入在创建文件中
private static BufferedWriter writeFile(List<String> list, File file)
throws IOException {
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
for(String str : list){
bw.write(str);
bw.newLine();
bw.flush();
}
return bw;
}
//创建新文件并判断是否存在
private static File createFile() throws IOException {
File file = new File("a.txt");
if(file.exists()){
file.delete();
}
file.createNewFile();
return file;
}
//讀取thkj.txt 并進行篩選 放在集合里
private static List<String> getFileList(BufferedReader br)
throws IOException {
List<String> list = new ArrayList<String>();  
String input=null;
System.out.println(br.readLine());
while(br.readLine()!=null){         
String strTrim = br.readLine();  
System.out.println(strTrim);
if(strTrim!=null){          
if(strTrim.endsWith("NOT_IN_PENDINGDELETE")){
     input = strTrim;
     input = input.substring(4,input.indexOf(".cn")+3);
     list.add(input.trim());  
}
}
}
return list;
}}输入结果:
.
.
.
thkj hangzhoudayinjiweixiu.cn nowc40407695 NOT_IN_PENDINGDELETE
筛选成功目的:只筛选 第二列  从第四列是 NOT_IN_PENDINGDELETE 的提取但结果发现好多筛选的时候会遗漏掉....

解决方案 »

  1.   

    while(br.readLine()!=null){             
                    String strTrim = br.readLine();  
                    System.out.println(strTrim);
                    if(strTrim!=null){                          
                        if(strTrim.endsWith("NOT_IN_PENDINGDELETE")){
                        input = strTrim;
                        input = input.substring(4,input.indexOf(".cn")+3);
                        list.add(input.trim());          
                        }
                    }
            }
    每次你读了两行