第一种:java
写入的内容中利用\r\n进行换行linux
File file = new File("D:/text"); try { if(!file.exists()) file.createNewFile(); FileOutputStream out=new FileOutputStream(file,false); StringBuffer sb=new StringBuffer(); sb.append("10600257100120161201153103010 \r\n"); sb.append("120161201KBS571009886631浙江目录上传120161201094425210009302359591120110422KBS00005595530ZZA571ZZA20161201094435fanzhipeng2000\n"); out.write(sb.toString().getBytes("utf-8"));//注意须要转换对应的字符集 out.flush(); out.close(); /*
FileOutputStream out = new FileOutputStream(file);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(writerStream, "UTF-8"));
writer.write(json);
writer.close();
*/
} catch (IOException e) { e.printStackTrace(); }
第二种:json
利用BufferedWriter的newline()方法windows
File file = new File("D:/text"); try { if(!file.exists()) file.createNewFile(); FileWriter out=new FileWriter (file); BufferedWriter bw= new BufferedWriter(out); bw.write("10600257100120161201153103010 "); bw.newLine(); bw.write("120161201KBS571009886631浙江目录上传120161201094425210009302359591120110422KBS00005595530ZZA571ZZA20161201094435fanzhipeng2000"); bw.newLine(); bw.flush(); bw.close(); } catch (IOException e) { e.printStackTrace(); }
可是newLine在使用中可能会出现问题:浏览器
不一样系统的换行符:服务器
windows --> \r\napp
Linux --> \r函数
mac --> \n测试
咱们通常开发是在 windows 下开发,而服务器通常状况下都是 linux。.net
若是咱们使用 newline 函数换行,在本机测试的时候,由于是 windows 环境,换行符是 \r\n ,打开文件时候天然文件是换行处理,没有问题。
当咱们部署到服务器时候,服务器是 linux 环境,newline 读取系统换行符是 \r ,导出到文件,文件的换行符是 \r,当咱们把这个文件经过浏览器下载到 windows 时候,再打开文件将会出现没有换行的问题。由于 windows 下对于 \r 的解释并非换行符。
因此,咱们在开发时候,若是须要指定文件在某些地方换行,则不能使用 newline 方法。必须手动指定换行符:\r\n 由于按照上面列举的不一样系统换行符看,若是字符串的末尾是 \r\n 在三个系统中,查看该文件,都会解释为换行。
简单整理!!