解决方案 »

  1.   

    楼主要学会贴代码public class Demo {
        public static void main(String[] args) {
            if (args.length == 0) {
                System.out.println("no args.");
            }
        }
    }像楼主的代码层级多,又没有排版,没法看。
      

  2.   

    吓了一跳,什么也没输出,仔细查看了一下,发现是楼主粗心了,看代码注释中指出的,要么显示的调用flush();要么调用close(),否则缓冲区中的内容可能无法写出,所以应该从这两个地方考虑代码的错误。
    import java.util.*;
    import java.util.regex.*;
    import java.io.*;public class FilteringData
    {
    private List<String> list = new ArrayList<String>();
    private String patternString = "[0-9]{4}-[0-9]{2}-[0-9]{2}";
    private Pattern pattern = Pattern.compile(patternString);
    private Matcher matcher;
    private String temp; public void readFile(String fileName)
    {
    FileReader fileReader;
    BufferedReader reader = null;
    try
    {
    fileReader = new FileReader(new File(fileName));
    reader = new BufferedReader(fileReader);
    }catch(FileNotFoundException e)
    {
    e.printStackTrace();
    }
    try
    {
    while((temp=reader.readLine()) != null)
    {
    matcher = pattern.matcher(temp);
    if(matcher.lookingAt())
    list.add(temp);
    }
    }catch (IOException e)
    {
    e.printStackTrace();
    }
    } public void printData(String fileName)
    { try
    {
    FileWriter fileWriter = new FileWriter(new File(fileName));
    BufferedWriter bufWriter = new BufferedWriter(fileWriter);
    for(int i=0; i<list.size(); i++)
    {
    bufWriter.write(list.get(i));
    bufWriter.newLine();
    }
    bufWriter.flush(); //这个地方写错了
    bufWriter.close(); //这个地方写错了
    }catch(IOException e)
    {
    e.printStackTrace();
    }
    } public static void main(String[] args)
    {
    FilteringData filteringData = new FilteringData();
    filteringData.readFile("text.txt");
    filteringData.printData("OutoutText.txt");
    System.out.println(filteringData.list );
    }}