Java语言将换行符\r\n写进文件时注意事项

Java语言将换行符\r\n写进文件时注意事项  

2012-03-15 00:39:50|  分类: Java语言|举报|字号 订阅

1、将String写入到文件时,换行符有一些会被过滤掉,没有任何效果。

解决办法:
那是因为默认的情况下,界面上的换行时用的"\n",这是LINUX和UNIX的换行符。在windows下换行符是"\r\n". 
所以再将String对象写入到文件时,换行符应该把\n写完整成\r\n
例1:

String s = "12443\nkdjf";
//改成String s = "1244\r\nkdjf";      输出结果一样
                                                                    
System.out.print(s);
输出结果是:
12443
kdjf

例2:
String s = "12443\nkdjf";
PrintStream ps = new PrintStream(".\\"+ "testStringNextLine.txt");
ps.print(s);

在文件testStringNextLine.txt里的显示结果是:
12443kdjf
\n符号直接被忽略
一旦将定义改成如下形式:
String s = "12443\r\nkdjf";   //注意多了\r
显示结果将变成:
12443
kdjf

完整程序:

public static void main(String[] args) throws IOException { String s = "dsfjks" + "\n"; System.out.print(s); StringBuffer sb = new StringBuffer("sdfkjds"); sb.append("\r\n"); sb.append("2323"); sb.append("\r\n"); sb.append("fjkdsl"); sb.append("\r\n"); //\n和\r\n都一样,在在控制台输出正常换行 System.out.print(sb.toString()); File f = new File(".\\"+ "testStringNextLine.txt"); f.createNewFile(); File f2 = new File(".\\"+ "testStringNextLine2.txt"); f2.createNewFile(); try { //无论这里加几个\n,PrintStream输出到文件的换行符都被过滤掉 PrintStream ps = new PrintStream(".\\"+ "testStringNextLine.txt"); ps.print(sb.toString()); ps.print("\r\n"); ps.print("234"); ps.print("\r\n"); ps.close(); FileWriter fw = new FileWriter(f2); BufferedWriter bw = new BufferedWriter(fw); bw.write(sb.toString()); bw.write("\r\n"); bw.write("\r\n"); String s2 = "djfkljw\r\n2323\r\n"; System.out.print(s2); bw.write(s2); bw.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值