JSP PrintWriter用于多行

时间:2013-03-29 03:38:00

标签: jsp

我正在尝试将一些信息写入文本文件。每条信息都应该在新的一行上。以下代码可以正常工作,但所有内容都打印在一行上。

println()不应该打印到新行吗?为什么不起作用?

<%
    String file = request.getParameter("page"); 
    String name = request.getParameter("name");
    String location = request.getParameter("location");
    String number = request.getParameter("number");
    String url = request.getParameter("url");

    PrintWriter pw = new PrintWriter(new FileOutputStream(file));

    pw.println(name);
    pw.println(location);
    pw.println(number);
    pw.println(url);

    pw.close();
%>

1 个答案:

答案 0 :(得分:1)

使用JSP的真正好处并做到这一点

<%
        String file = request.getParameter("page"); 
        String name = request.getParameter("name");
        String location = request.getParameter("location");
        String number = request.getParameter("number");
        String url = request.getParameter("url");

        PrintWriter pw = new PrintWriter(new FileOutputStream(file));

        pw.println(name);
              %><br/>

        <%  pw.println(location);%><br/>
        <%  pw.println(number);%><br/>
        <%  pw.println(url);
                pw.close();
                                           %>

我不知道为什么你再次创建PrintWriter对象,因为JSP本身在scriplets中提供"out" which is a printwriter object变量。
我们可以通过其他一些好方法来做到这一点,但根据你的代码,我发现这种方式很舒服 编辑:如果无效,那么您需要有机会pw.printf( "%s" + "%n" , location);因为这允许您将格式化的文本字符串传递给PrintWriter。使用printf的一个很好的理由是处理换行符。新行字符会有所不同,具体取决于您使用的操作系统。 Windows将为新行添加字符\r\n。但Unix系统只使用\n。无论平台是什么,使用printf函数都可以确保正确的编码。