zoukankan      html  css  js  c++  java
  • 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 ('
    ') character.  
          
        Throws:  
            IOException - If an I/O error occurs  

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

        不同系统的换行符:

        windows -->  

        linux         -->  

        mac         -->  

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

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

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

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

       至此,问题分析完毕。

    注:参考链接:http://blog.csdn.net/TroyLemon/article/details/47781817

  • 相关阅读:
    Form表单提交数据的几种方式
    前端基础-HTML
    python入门函数详解
    Python作业编写
    Python入门数据类型详解
    Jquery选择器
    做外链接和有外链接区别
    三层架构
    drop,delete,truncate区别
    run()和star()区别
  • 原文地址:https://www.cnblogs.com/kings-9/p/7630124.html
Copyright © 2011-2022 走看看