当前位置: 代码迷 >> J2SE >> 从键盘输入的字符封存到文件出错
  详细解决方案

从键盘输入的字符封存到文件出错

热度:779   发布时间:2013-02-25 00:00:00.0
从键盘输入的字符保存到文件出错。
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();    }