我要用servlet实现一个将数据以csv文件格式导出,并且是打成zip包。
可是,如果我生成两个csv文件,第一个文件是空的,第二个文件才有数据,不知道是为什么。
请大家帮帮忙,谢谢!以下是主要代码
ZipOutputStream zout = new ZipOutputStream(sout);
BufferedWriter bw = null;
zout.putNextEntry(new ZipEntry("1.csv"));
String data = "1,2,3,4,5,6";
bw = new BufferedWriter(new OutputStreamWriter(zout));
bw.write(data); zout.putNextEntry(new ZipEntry("2.csv"));
data = "a,b,c,d,e,f,g";
bw = new BufferedWriter(new OutputStreamWriter(zout));
bw.write(data); bw.close();
zout.flush();
sout.flush();
zout.close();
sout.close();
可是,如果我生成两个csv文件,第一个文件是空的,第二个文件才有数据,不知道是为什么。
请大家帮帮忙,谢谢!以下是主要代码
ZipOutputStream zout = new ZipOutputStream(sout);
BufferedWriter bw = null;
zout.putNextEntry(new ZipEntry("1.csv"));
String data = "1,2,3,4,5,6";
bw = new BufferedWriter(new OutputStreamWriter(zout));
bw.write(data); zout.putNextEntry(new ZipEntry("2.csv"));
data = "a,b,c,d,e,f,g";
bw = new BufferedWriter(new OutputStreamWriter(zout));
bw.write(data); bw.close();
zout.flush();
sout.flush();
zout.close();
sout.close();
解决方案 »
- 这两种写法哪种好?
- 如下这段代码怎么解释?实现什么功能?
- 一个页面表单,其中包括一组重复的表单内容。组中每一记录都包括两个text类型的表单域,请问在这种情况下如何写formbean?
- java API中有没有判断数字奇偶性的函数?
- byte/char/short在运算过程中遇到的问题
- 运行java程序,系统经常出现以下错误,请问是什么原因?高手指教!
- 急!关于applet的问题!!!
- 可乐吧的游戏是用java写的么?有没有关于这方面的资料?
- java“以文件结尾”是什么意思?
- 请问,如何判断Jframe是否出于最前端?
- java 正则
- tomcat服务器只能用如IP(如172.16.45.84)打开,不能用localhost打开
zout.closeEntry()
请问是在 bw.write(data); 之后吗?
我这样试的,结果报 bw.close(); 一行有错,空指针异常。
BufferedWriter bw = null;
zout.putNextEntry(new ZipEntry("1.csv"));
String data = "1,2,3,4,5,6";
bw = new BufferedWriter(new OutputStreamWriter(zout));
bw.write(data);
bw.close();
zout.flush();
sout.flush();
zout.putNextEntry(new ZipEntry("2.csv"));
data = "a,b,c,d,e,f,g";
bw = new BufferedWriter(new OutputStreamWriter(zout));
bw.write(data); bw.close();
zout.close();
sout.close();
当运行到第一个bw.close();时,下载对话框就已经弹出来了。后面的没有加到压缩包中。
BufferedWriter bw = null;
zout.putNextEntry(new ZipEntry("1.csv"));
String data = "1,2,3,4,5,6\r\n";
bw = new BufferedWriter(new OutputStreamWriter(zout));
bw.write(data);
bw.flush(); zout.putNextEntry(new ZipEntry("2.csv"));
data = "a,b,c,d,e,f,g\r\n";
// bw = new BufferedWriter(new OutputStreamWriter(zout));
bw.write(data);
bw.close(); zout.flush();
sout.flush();
zout.close();
sout.close();
ZipOutputStream zout = null;
BufferedWriter bw = null;try {
//sout = new FileOutputStream("testdata/test1.zip");
zout = new ZipOutputStream(sout);
bw = new BufferedWriter(new OutputStreamWriter(zout));
zout.putNextEntry(new ZipEntry("1.csv"));
String data = "1,2,3,4,5,6";
bw.write(data);
bw.flush();
zout.flush();
zout.putNextEntry(new ZipEntry("2.csv"));
data = "a,b,c,d,e,f,g";
bw.write(data);
bw.flush();
zout.flush();
}
catch (Exception exp) {
exp.printStackTrace();
}
finally {
try {
if (zout != null) {
zout.close();
}
if (sout != null) {
sout.close();
}
if (bw != null) {
bw.close();
}
}
catch (Exception exp) {
exp.printStackTrace();
}
}
谢谢,这个应该没问题了,bw在中间不能close();