Linux,Unix和mac系统的换行是"\n",而Windows的换行并不是直接的"\n",是"\r\n"。所以out.write("\n")只能得到一个黑框,因为Windows不认为这是个“换行”。 直接从记事本输入的话,Windows自动输入了"\r\n",所以从从文本文件中读出来的也是"\r\n",可以正常显示。
那么这是为什么呢?稍微学过正则表达式的朋友都知道:\r是回车符,而\n是换行符。Windows默认\n在文档中显示的是一个空格或者小黑框。所以,要先回车,再换行。
在文章分割中,除了可用BufferedReader的readLine()方法读取每行,还可以用换行符来分割。
在Windows中要使用"\r\n"
String[] arr = fileContet.splite("\r\n");
而在Linux系统需用"\n"
String[] arr = fileContet.splite("\n");
如果不清楚是哪个系统,可以使用下面的代码:
String lineSeparator = System.getProperty("line.separator", "\n");
String[] arr = fileContet.splite(lineSeparator );