Java将csv从服务器导出到可能不在同一操作系统上的客户端

时间:2013-03-05 14:51:29

标签: java windows unix csv

如果我有一个应用程序坐在* nix框上,我生成一个csv,然后传递给瘦客户端用户,如果他们在Windows上并且想要一个合适的csv,我必须采取什么预防措施?

我的意思是这个流程:

UNIX:
1)使用System.getProperty("line.separator")生成csv 2)传递给瘦客户端

在Windows / Unix的:
1)从浏览器下载文件
2a)在Excel中打开(Win​​dows)
2b)在某些电子表格应用程序中打开

我不是在寻找使用Library X的答案,对于仅为一个项目使用的图书馆增加技术风险缺乏喜爱。

1 个答案:

答案 0 :(得分:1)

根据rfc4180 section 2

  

没有正式的规范,允许a   CSV文件的各种解释。这个部分   记录大多数人似乎遵循的格式   实现:

     
      
  1. 每条记录都位于一条单独的行上,由一行分隔      休息(CRLF)。例如:

         

    aaa,bbb,ccc CRLF      zzz,yyy,xxx CRLF

  2.   
  3. 文件中的最后一条记录可能有也可能没有结束行      打破。例如:

         

    aaa,bbb,ccc CRLF      ZZZ,YYY,XXX

  4.   
  5. 可能有一个可选的标题行显示为第一行      与普通记录行格式相同的文件。这个      标头将包含与文件中的字段对应的名称      并且应包含与记录中相同数量的字段      文件的其余部分(标题行的存在与否)      应通过此选项的“header”参数表示      MIME类型)。例如:

         

    field_name,field_name,field_name CRLF      aaa,bbb,ccc CRLF      zzz,yyy,xxx CRLF

  6.   

因此System.getProperty("line.separator")不正确,应使用\r\n