java - PrintWriter 写入 CSV - 新行不起作用?

标签 java csv printwriter

我已经尝试了在网上和这个特定网站上可以找到的几乎所有选项,但这些选项都不起作用。我正在循环访问对象列表并创建 CSV 文件。我想在每个对象条目处中断,但到目前为止还没有运气。

这是我目前拥有的:

    String value = FacesContext.getCurrentInstance().
            getExternalContext().getRequestParameterMap().get("cityId");
    
    String seperator = System.getProperty("line.separator");
    
    try {
        
        PortletResponse response1 = (PortletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
        HttpServletResponse resp = PortalUtil.getHttpServletResponse(response1);
        resp.setHeader("Content-Type", "text/csv");
        resp.setHeader("Content-disposition", "attachment;filename=myFile.csv");

       List<Person> people = ppApi.getPeopleByCityId(Long.parseLong(value));
        
       PrintWriter out = resp.getWriter();
        
       for(Person pp : people) {
            
           out.print(pp.getFirstName() + ",");
           out.print(pp.getLastName() + ",");
           out.print(pp.getEmail() + ",");
           out.print(pp.getPhone() + "%%n");
           out.print("\r\n");
           out.print("\n\r");
           out.print("\n");
           out.print("\r");
           out.print("\\r\\n");
           out.print("\\n");
           out.print("\\n\\r");
           out.print(seperator);
           out.println('\n');
           out.println("%n");
           out.println("%%n");
        }
        
        //Close the output stream
        out.flush();
        out.close();
    }
    catch(Exception e) {
        e.printStackTrace();
    }

所以这些东西都不起作用。我的输出看起来像这样:

jeff,smith,jsmith@email.com,555-123-1234 rick,smith,rsmith@email.com,123-123-1233

应该看起来像:

jeff,smith,jsmith@email.com,555-123-1234

rick,smith,rsmith@email.com,123-123-1233

最佳答案

请不要发明自行车并使用Java CSV图书馆。它将消除您所有的问题。

关于java - PrintWriter 写入 CSV - 新行不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929619/

相关文章:

java - 是否必须将内部 try-with-resources 放入内部 try-with-resources 或其中一个 try-with-resources 中的所有内容都将自动关闭?

java - 有没有办法修复这个字符串输出?

Python将列表中的字符串转换为数字

java - 如果我创建了一个 BufferedReader 实例,其参数为 FileReader,我必须关闭哪一个?

java - 如何使用 BufferedWriter 读取特定行

java - 使用欧几里得算法查找最大公约数

java - 如何在Java中使用PKCS#11 CKM_AES_KEY_WRAP机制?

java - 如何组合jsoup选择器中的属性

python - 如何修剪 csv 文件中的前导和尾随空格?

Java PrintWriter 关闭后不会追加到现有的 .txt 文件