java jsp中如何实现下载.csv文件、并自动保存到指定的文件夹下

java jsp中如何实现下载.csv文件、并自动保存到指定的文件夹下,第1张

你这种想法不太现实

首先你客户端要跟服务器交互是要客户端主动发送请求

然后建立连接去 *** 作

就算你不手动选保存路径,那你还是要写代码去实现这个过程的

实现方式就两种了

bs跟cs架构均可

思路是一样的

BS:

servlet读取本地文件然后以流的形式输出就行,注意要设置输出的MINE类型也就是contentType

你客户端写个程序通过http访问这个servlet,然后通过程序去保存到你移动硬盘

如果是cs架构的话,你的服务端监听socket

如果有客户端连接那就等待接收命令或者是直接往客户端传文件的二进制流

客户端:已启动就连接服务端,发送文件请求,处理回传的文件字节流

这种通常是如下做法:

1:提供查询页面,让用户输入查询条件

2:根据查询条件到数据库去检索,并获取到对应的记录

3:生成csv到本地(可以省略,生成临时文件到tomcat的临时目录)

4:用读取文件,用response写流到客户端

解释:csv文件实际上就是字符串,之间用“,”进行分割,之后进行的存储。

工具类如下:

import java.io.BufferedWriter

import java.io.File

import java.io.FileOutputStream

import java.io.IOException

import java.io.OutputStreamWriter

import java.util.List

/**

*

* CSV文件导出工具类

*/

public class CSVUtils {

/**

* CSV文件生成方法

* @param head

* @param dataList

* @param outPutPath

* @param filename

* @return

*/

public static File createCSVFile(List<Object>head, List<List<Object>>dataList,

String outPutPath, String filename) {

File csvFile = null

BufferedWriter csvWtriter = null

try {

csvFile = new File(outPutPath + File.separator + filename + ".csv")

File parent = csvFile.getParentFile()

if (parent != null &&!parent.exists()) {

parent.mkdirs()

}

csvFile.createNewFile()

// GB2312使正确读取分隔符","

csvWtriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(

csvFile), "GB2312"), 1024)

// 写入文件头部

writeRow(head, csvWtriter)

// 写入文件内容

for (List<Object>row : dataList) {

writeRow(row, csvWtriter)

}

csvWtriter.flush()

} catch (Exception e) {

e.printStackTrace()

} finally {

try {

csvWtriter.close()

} catch (IOException e) {

e.printStackTrace()

}

}

return csvFile

}

/**

* 写一行数据方法

* @param row

* @param csvWriter

* @throws IOException

*/

private static void writeRow(List<Object>row, BufferedWriter csvWriter) throws IOException {

// 写入文件头部

for (Object data : row) {

StringBuffer sb = new StringBuffer()

String rowStr = sb.append("\"").append(data).append("\",").toString()

csvWriter.write(rowStr)

}

csvWriter.newLine()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11592752.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存