java BufferedWriter写数据不完全

package com.brucekun.keyword;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;

public class KeyWord {

    public static void main(String[] args) {
        BufferedReader br=null;
        BufferedWriter bw=null;
        try {
            //读入文件
            br=new BufferedReader(new FileReader("g:/keyword.txt"));
            bw=new BufferedWriter(new FileWriter("g:/kw.txt"));
            String s=null;
            while((s=br.readLine())!=null)
            {
                int len=s.length();
                if(len<=5){
                    bw.write("1
");
                }
                else{
                    bw.write("0
");
                }
            }
            bw.close();
            br.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        

    }

}

程序是读入一个关键字文件,每行有一个关键字,若这个关键字字符数小于等于5,则输入一个1在另一个文件中,否则,输入0在另一个文件中

程序运行后,发现会少三分之一的内容,网上查看错误,发现说BufferedWriter一开始是写到缓冲区的,需要.flush()方法,加上bw.flush()方法后,问题没有解决,待解决

原文地址:https://www.cnblogs.com/brucekun/p/7824955.html