如果生成一个文本,只有一段话,像下面代码就可以了
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-disposition", "attachment;filename=aa.txt" );
byte[] aa="中国,你好".getBytes();
OutputStream out=response.getOutputStream();
out.write(aa);
out.close();
}如果servlet中获得的是一个List<Student>的列表,Student中,包含id,name,age属性
那么遍历这个List<Student>中的数据,要怎样并放到byte[]数组中。数组的大小要如何确定?
如何将数据都全部写入byte[]数组中后,再向客户端输出.

解决方案 »

  1.   

    最简单的输入文件,我模拟的一个,你看下:
    package t.jya;import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;public class WN {
    public static void main(String[] args) {
    List<User> list=new ArrayList<User>();
    User user1=new User();
    user1.setAgeString("23");
    user1.setName("张三");
    list.add(user1);
    User user2=new User();
    user2.setAgeString("43");
    user2.setName("李四");
    list.add(user2);
    FileWriter fw=null;
    BufferedWriter bw = null;
    try {
    fw = new FileWriter(new File("d:\\aa.txt"));
    bw=new BufferedWriter(fw);
    if(list!=null&&list.size()>0){
    for (User user : list) {
    bw.write(user.getName()+" "+user.getAgeString()+"\r\n");
    }
    }
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    try {
    if(bw!=null){
    bw.close();
    }
    if(fw!=null){
    fw.close();
    }
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    }
    class User{
    private String name;
    private String ageString;
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public String getAgeString() {
    return ageString;
    }
    public void setAgeString(String ageString) {
    this.ageString = ageString;
    }
    }
      

  2.   

    //直接写啊,干嘛这么复杂?response.getWriter().println();