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

怎样读取TextField中的换行符到文本文档中
我想把TextField中的值读到一个文本文档中,可是其中的换行符变成了小黑方块,请问怎样解决,谢谢

------解决方案--------------------
默认的情况下,界面上的换行时用的"\n",这是LINUX和UNIX的换行符。在windows下换行符是"\r\n".
replaceAll("\n","\r\n");

------解决方案--------------------
DefaultEditorKit kit = new DefaultEditorKit();
Document document = textfield.getDocument();
kit.write(new FileWriter(new File("sdsfsd.txt")), document, 0, document.getLength());
------解决方案--------------------
使用DefalutEditorKit会自动处理换行

DefaultEditorKit 
这是文本组件使编辑器对某些类型 的文本文档合理发挥其作用所需的实现集合。此实现提供了一个默认实现,该默认实现把文本当作纯文本,并提供简单编辑器的最小操作集合。 

换行 
有两个属性负责处理换行。系统属性 line.separator,它的定义是和平台相关的,可以是 "\n"、"\r" 或 "\r\n"。还有一个属性,它是在 DefaultEditorKit 中定义的,名称为 EndOfLineStringProperty,它是在文档加载时自动定义的,定义为第一个出现的任意换行符。加载文档后,将会适当地设置 EndOfLineStringProperty,当文档被写回时,将用到 EndOfLineStringProperty。但是当文档在内存中时,无论文档在磁盘上如何定义换行,现在都将用 "\n" 字符定义换行。因此,为便于搜索,要经常使用 "\n"。当创建了新文档而 EndOfLineStringProperty 尚未定义时,写入文档将使用 System 属性。 
注意,在 Document 上使用 get/setProperty 方法设置 EndOfLineStringProperty。子类可重写此行为。 

------解决方案--------------------
str.replaceAll("\r",\n).replaceAll("\n\n",\n);
以后用split("\n")来分隔。
直接打开文件看到黑块,无法解决!