0

bufferwriter 没有写入文件。请问谁能告诉我可能是什么问题

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

4 回答 4

3

尝试将数据写入 BufferedWriter 后再flush()尝试。close()

于 2011-07-18T19:40:44.343 回答
2

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

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

于 2011-07-18T19:38:50.880 回答
2

BufferedWriter写完后关闭。

output.close();
于 2011-07-18T19:40:00.053 回答
2

您既不刷新()也不关闭()作者。由于它是一个缓冲写入器,所有内容都存储在缓冲区中,直到您执行其中之一。

于 2011-07-18T19:40:59.357 回答