BufferedWriter如何使用write方法实现换行

 更新时间:2021年7月21日 15:00  点击:1395

BufferedWriter write方法实现换行

BufferedWriter对象自带newline()方法可以换行,但如果在字符串中部换行,不想用newline()方法该如何做呢?

使用\n是无法实现的,使用\n后,只会出现一个空格,并未 实现换行,在想要实现换行的地方加入\r\n就行了

例如下面

File file=new File("d:/ioPractice/text.txt");
Writer fw=
new FileWriter(file,true);
BufferedWriter bw=new BufferedWriter(fw);
String str="这是第1行\r\n这是第2行";

bw.write(str);
bw.flush();
 
bw.close();
fw.close();

Java 输出文件通过 BufferedWriter.newline() 方法换行的陷阱

最近项目中需要导出文件,其实导出文件是一个挺简单的事情。但是却遇到了很奇怪的问题。

首先导出到文件需要用到 BufferedWriter。而换行则是通过 bw.newline() 方法,问题将出在 newline() 方法上面。

我们看一下 newline() api:

newLine
public void newLine()
throws IOException
Writes a line separator. The line separator string is defined by the system property line.separator, and is not necessarily a single newline ('\n') character.
Throws:
IOException - If an I/O error occurs

英文本身应该没有什么难度,意思是:newLine 方法会调用系统的换行符。而这就是问题的根本。

不同系统的换行符:

windows --> \r\n

linux --> \r

mac --> \n

我们一般开发是在 windows 下开发,而服务器一般情况下都是 linux。

如果我们使用 newline 函数换行,在本机测试的时候,因为是 windows 环境,换行符是 \r\n ,打开文件时候自然文件是换行处理,没有问题。

当我们部署到服务器时候,服务器是 linux 环境,newline 读取系统换行符是 \r ,导出到文件,文件的换行符是 \r,当我们把这个文件通过浏览器下载到 windows 时候,再打开文件将会出现没有换行的问题。因为 windows 下对于 \r 的解释并不是换行符。

所以,我们在开发时候,如果需要指定文件在某些地方换行,则不能使用 newline 方法。必须手动指定换行符:\r\n 因为按照上面列举的不同系统换行符看,如果字符串的末尾是 \r\n 在三个系统中,查看该文件,都会解释为换行。

至此,问题分析完毕。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持猪先飞。

[!--infotagslink--]

相关文章

  • php过滤所有的空白字符(空格、全角空格、换行等)

    在php中自带的trim函数只能替换左右两端的空格,感觉在有些情况下不怎么好使,如果要将一个字符串中所有空白字符过滤掉(空格、全角空格、换行等),那么我们可以自己写一个过滤函数。php学习str_replace函数都知道,可以批量替...2015-10-30
  • 解决vue字符串换行问题(绝对管用)

    这篇文章主要介绍了解决vue字符串换行问题(绝对管用),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-06
  • 从PHP $_SERVER相关参数判断是否支持Rewrite模块

    如果是http://www.jb51.net/p1141.html形式的URL,可通过$_SERVER['REQUEST_URI']和$_SERVER['QUERY_STRING']值的区别来分析,最主要是如果页面是通过重定向会产生$_SERVER['REDIRECT_QUERY_STRING']和$_SERVER['REDIREC...2013-10-04
  • php过滤所有的空白字符(空格、全角空格、换行等)

    在php中自带的trim函数只能替换左右两端的空格,感觉在有些情况下不怎么好使,如果要将一个字符串中所有空白字符过滤掉(空格、全角空格、换行等),那么我们可以自己写一个过滤函数。php学习str_replace函数都知道,可以批量替...2015-10-30
  • prettier自动格式化去换行的实现代码

    这篇文章主要介绍了prettier自动格式化去换行的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-26
  • 浅谈Python3中print函数的换行

    这篇文章主要介绍了浅谈Python3中print函数的换行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-05
  • ASP.NET Lable中进行换行解决方案

    这个问题,应该算是很简单的问题,可说实在的,折腾了2个小时的时候,后面整出来的时候,真坑爹呢。现在把这个过程给大家,希望可以给大家一个提醒...2021-09-22
  • C# 字符串多行显示/文本换行以textbox为例讲解

    C# 字符串多行显示、文本换行以textbox为例讲为大家详细介绍并附演示效果图及演示代码,感兴趣的朋友可以了解下,或许对你学习字符串换行有所帮助...2020-06-25
  • 真正可用的IIS的ISAPI-Rewrite伪静态URL图片防盗链规则写法

    本规则支持白名单排除式防盗链,搜索引擎友好不屏蔽,被盗链后的错误提示转向,支持各种文件类型,经作者亲验真的能用...2016-01-27
  • ASP.NET中Global和URLReWrite用法

    这篇文章主要介绍了ASP.NET中Global和URLReWrite用法,较为深入浅出的分析了Global.asax的功能及配置技巧,并实例分析了URLReWrite实现伪静态的方法,需要的朋友可以参考下...2021-09-22
  • 文本超过div 自动换行代码

    文本超过div 自动换行代码文本自动换行IE中解决方法: word-wrap:break-word; word-break:break-all; 注:在要换行的内容相应的单元格或者DIV里加入,如: <div style=word-...2016-09-20
  • 浅谈缓冲字符流 BufferedReader BufferedWriter用法

    这篇文章主要介绍了缓冲字符流 BufferedReader BufferedWriter的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-21
  • php中各种换行符过滤办法

    在php中默认换代码换行有\\n还有一个就是回车换行了/r/n以及我们的ascii编辑的chr(32) chr(13)分别是回车和空格哦,下面是简单介绍不同系统之间的换行符在php中的用法...2016-11-25
  • 使用rewrite 来配置 apache二级域名

    ServerName www.111cn.net ServerAlias *.111cn.net 111cn.net RewriteEngine on RewriteCond %{HTTP_HOST} ^((?!www)w)+.111cn.net$ RewriteRul...2016-11-25
  • nginx rewrite重写规则与防盗链配置方法教程详解

    这篇文章主要介绍了nginx rewrite重写规则与防盗链配置方法教程详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-09-28
  • php过滤或替换textarea换行回车\r\n的2种方法

    如果我们利用textarea提交的数据回车换行与空格都会自动过滤了,所有提交的数据都是没有格式的,下面我们一起来看看解决textarea中回车换行问题。 方法一, 代...2016-11-25
  • apache检查手机移动设备访问网站Rewrite

    apache Rewrite检查手机移动设备访问网站 代码如下 复制代码 RewriteEngine On RewriteBase / RewriteCond %{HTTP_USER_AGENT} (android|bbd+|meego...2016-01-28
  • php将textbox回车符换成html 换行代码

    Mail Body的来源有时直接就是TextBox中的文本内容,但是如果对文本内容没有做处理的话,文本就会没有任何的格式,挤在一起,逐行显示。现在说的是如何让文本内容可以换行,然后...2016-11-25
  • 没有ISAPI Rewrite FULL照样玩多站点伪静态的方法分享

    IIS中增加URL Rewrite功能,最多人选用的是名为“ISAPI Rewrite“的软件,网上下载的破解版,其实破解不完善,最终会不能用...2016-01-27
  • C#给文字换行的小技巧

    这篇文章主要介绍了C#给文字换行的小技巧,本文直接给出实现代码,例子蛮简单,一看就懂啦,需要的朋友可以参考下...2020-06-25