bufferedwriter没有写入文件

时间:2011-07-18 19:35:45

标签: java file-io bufferedwriter

bufferedwriter没有写入文件。请任何人都可以告诉我可能是什么问题

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.io.InputStreamReader;
import java.io.Writer;


public class main {
    /**
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {

        Writer output = null;
        File file = new File("D:/junk/CI_CSSOIDs sql_query/orphans.log");
        output = new BufferedWriter(new FileWriter(file));

        java.io.FileReader fr = new FileReader( "D:/junk/CI_CSSOIDs ql_query/SQL_CSSO.log" ) ;
        java.io.BufferedReader reader = new BufferedReader( fr ) ;
        int orphancount=0;
        String line = null ;
        int count =1;
        while( ( line = reader.readLine() ) != null )
        {         
            String words[]=line.split(" ");
            for (int i =0;i<words.length;i++){
                if (words[i].length()==32){
                    String CIline=null;
                    java.io.FileReader CIfr = new FileReader( "D:/junk/CI_CSSOIDs sql_query/CI.log" ) ;
                    java.io.BufferedReader CIreader = new BufferedReader( CIfr ) ;
                    boolean orphan = true;
                    while((CIline=CIreader.readLine())!=null){
                        if (CIline.contains(words[i])){
                            orphan=false;
                            break;
                            }                       
                    }
                    if(orphan){
                        orphancount++;
                        output.write("####"+words[i]+"*****\n");
                        System.out.println(words[i]+" : is an orphan CSSOID");
                    }                   
                }
            }       
            count++;        
        }
        System.out.println("Orphan count is :"+orphancount);
    }
}

4 个答案:

答案 0 :(得分:3)

在向其写入数据后,尝试flush()然后close()您的BufferedWriter。

答案 1 :(得分:2)

BufferedWriter缓冲区写入。这意味着它会将数据保留在内存中,直到缓冲区耗尽或刷新/关闭编写器。这样做是为了提高性能。

我建议您关闭所有的流/读者/编写者,这也将解决您的问题。

答案 2 :(得分:2)

写完后关闭BufferedWriter

output.close();

答案 3 :(得分:2)

你既不刷新()也不关闭()作家。由于它是一个缓冲编写器,所以所有东西都存储在缓冲区中,直到你执行其中一个。