我有这样一个数组fieldContent:
String[] fieldContent={
amtAllocDetailVo.getMid(),
amtAllocDetailVo.getMerName(),
amtAllocDetailVo.getDeveSide(),
amtAllocDetailVo.getMachProvSide(),
amtAllocDetailVo.getSuppProvSide(),
amtAllocDetailVo.getMerType(),
amtAllocDetailVo.getRate(),
amtAllocDetailVo.getProtRate(),
amtAllocDetailVo.getPartnerAmt(),
amtAllocDetailVo.getCompanyAmt()
};
//amtAllocDetailVo里面存的是数据表里的相应字段
我想把这个数组在内存(不保存在硬盘上)中保存为.txt文件,传输给客户端(JSP页面下载)。
请问怎么实现?(JSP页面上的下载按钮代码我已经写了)
String[] fieldContent={
amtAllocDetailVo.getMid(),
amtAllocDetailVo.getMerName(),
amtAllocDetailVo.getDeveSide(),
amtAllocDetailVo.getMachProvSide(),
amtAllocDetailVo.getSuppProvSide(),
amtAllocDetailVo.getMerType(),
amtAllocDetailVo.getRate(),
amtAllocDetailVo.getProtRate(),
amtAllocDetailVo.getPartnerAmt(),
amtAllocDetailVo.getCompanyAmt()
};
//amtAllocDetailVo里面存的是数据表里的相应字段
我想把这个数组在内存(不保存在硬盘上)中保存为.txt文件,传输给客户端(JSP页面下载)。
请问怎么实现?(JSP页面上的下载按钮代码我已经写了)
//将字符串写入文件
foreach(string str : fieldContent)
{
fw.write(str);
}
fw.close();
如果你是这个意思的话,那么你也可以编写客户端的脚本或组件来生成txt文件。
//list里面存的是amtAllocDetail表中的所有记录
Iterator it = list.iterator();
int i;
for (i = 3; i < list.size() + 3; i++) {
amtAllocDetailVo = (AmtAllocDetailVo) it.next();
String[] fieldContent={
amtAllocDetailVo.getMid(),
amtAllocDetailVo.getMerName(), amtAllocDetailVo.getDeveSide(), amtAllocDetailVo.getMachProvSide(),
amtAllocDetailVo.getSuppProvSide(),
amtAllocDetailVo.getMerType()
};
}
//现在数组fieldContent中已经存了很多数据//将数组中的数据写入.txt文件(不要引入路径,在内存中完成写入工作),JSP页面上直接下载//如下代码是不合适的:
String fileName = "1";
File file = new File("d:\\");//这里有D盘着个路径,如果是linux呢?有D盘这概念
if (file.exists()) {
try {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[1024];
fileName = java.net.URLEncoder.encode(fileName, "UTF-8");// 处理中文文件名的问题
fileName = new String(fileName.getBytes("UTF-8"), "GBK");// 处理中文文件名的问题
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/x-msdownload");// 不同类型的文件对应不同的MIME类型
response.setHeader("Content-Disposition","attachment; filename=" + fileName+".txt");
OutputStream os = response.getOutputStream();
while (bis.read(buffer) > 0) {
os.write(buffer);
}
bis.close();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
所以我想通过吧数组保存在内存里面,然后把数组中的内容用流写入.txt文件(.txt文件也在内存里面),这样就程序就可以在winodws和linux 移植 不会出现问题。望高手赐教
你这已经写的很好了啊,,你现在的过程是 字符串 -> 文件 -> JSP页面。但是你为什么要在中间多出一步来呢?直接从字符串写入jsp页面里不就得了么