日期:2014-05-20  浏览次数:20667 次

从键盘输入的字符保存到文件出错。
Java code

BufferedReader bfr = null;
        BufferedWriter bfw = null;
        try {
        bfr = new BufferedReader(new InputStreamReader(System.in));
            bfw = new BufferedWriter(new FileWriter("c:/abc.txt")); 
            int len = 0;
            String text = bfr.readLine();
            while(!(text.equals("exit"))){
                 
                bfw.write(text);
                bfw.newLine();
                //text = bfr.readLine();
            }
            bfw.flush();



上面的循环部分,如果把上面的一段代码注释掉了的话,则文件没发终止了,好像一直在循环,
而且生成的文件里面全是重复的,而且生成的txt文件很大。
局部定义的bfr.readLine()和上面定义的不一样嘛?

------解决方案--------------------
String text = bfr.readLine();
while(!(text.equals("exit"))){

bfw.write(text);
bfw.newLine();
//text = bfr.readLine();
}

改成
Java code

        String text = "";
        while (!(text = bfr.readLine()).equals("exit")) {
            bfw.write(text);
            bfw.newLine();
            //text = bfr.readLine();
        }
        bfw.flush();

------解决方案--------------------
1L的方法不能生成文件么?我试了可以的啊。
------解决方案--------------------
怎么可能。。。
Java code

    public static void main(String args[]) throws Exception {

        BufferedReader bfr = null;
        BufferedWriter bfw = null;
        bfr = new BufferedReader(new InputStreamReader(System.in));
        bfw = new BufferedWriter(new FileWriter("c:/abc.txt"));
        String text = "";
        while (!(text = bfr.readLine()).equals("exit")) {
            bfw.write(text);
            bfw.newLine();
        }
        bfw.flush();
    }