Java语言将换行符\r\n写进文件时注意事项
原文出处:http://asher.blog.163.com/blog/static/174174566201221501537288/
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
完整程序:
import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.io.PrintStream;public class tmptmp {/*** @param args*/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();}}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
