BufferedReader br = new BufferedReader(new FileReader(
                     jfc.getSelectedFile()));
                 setTitle(jfc.getSelectedFile().toString());
                 text.setText("");
                 String lineSeparator = System.getProperty("line.separator");
                 String str;
                 while((str = br.readLine()) != null) {
                     text.append(str);
                     text.append(lineSeparator);
                 }
                 br.close();
                BufferedWriter bw = new BufferedWriter(new FileWriter(file));
                bw.write(text.getText());
                bw.close();上面是我在记事本中输入和输出文本用的方法  但我在JTextArea里写入 回车换行 时
输出文本里就是几个黑色的长方形 那东西用写字版打开又是正常的显示 换行
请问我的问题出在哪了呢? 用什么方法能解决这个问题?

解决方案 »

  1.   

    跟\r \n 没关系吧? 我只是在JTextArea里按个 Enter  输出文本就是个黑框框哪位能给解释下 谢谢   
      

  2.   


    你可以调试一下,看 Enter键在后台转换成什么字符了,有的换行符在写字板里支持但记事本不支持
      

  3.   

    有的换行符在写字板里支持但记事本不支持这解释还是比较合理的,因为java Reader类和其子类用的换行符不一定是标准的asc码,而是unicode,记事本未必能全部支持unicode
      

  4.   

    在jtextarea里改下字体,用下面的某个:
    BatangChe
    Courier
    Courier New
    DotumChe
    Fixedsys
    GulimChe
    GungsuhChe
    Lucida Console
    Lucida Sans Typewriter
    MingLiU
    MS Gothic
    MS Mincho
    Terminal
    仿宋_GB2312
    楷体_GB2312
    隶书
    宋体-方正超大字符集
    新宋体
    幼圆
      

  5.   

    是你用的文本编辑器的问题。
    换个专业点的文本编辑工具就知道了。
    windows下的line.separator=\r\n。
    你用这个没错,但记事本不见得认的出来。
    你可在记事本中写入换行,再用java读出来。然后把读出来的换行符与\r\n、\r、\n进行比较。