FileOutPutStream读取服务器上的Excel文件下载时文件名称只有.xls[1]

5 篇文章 0 订阅

修改前代码

修改后代码

原因是穿过来的fileName 是中文,而http header头要求其内容必须为iso8859-1编码。

如 
String s_iso88591 = new String("海".getBytes("UTF-8"),"ISO8859-1"), 

这样得到的s_iso8859-1字符串实际是三个在 ISO8859-1中的字符,在将这些字符传递到目的地后, 

目的地程序再通过相反的方式String s_utf8 = new String(s_iso88591.getBytes("ISO8859-1"),"UTF-8")来得到正确的中文汉字“海”

如果直接传中文在转译的过程中会出现后缀为.xls[1]这种情况

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Kotlin 中,你可以使用 Apache Commons Net 库来连接到 FTP 服务器并从中下载文件。对于读取 Excel 文件,可以使用 Apache POI 库。 以下是一个示例代码,演示如何从 FTP 服务器上下载 Excel 文件并读取其中的数据: ```kotlin import org.apache.commons.net.ftp.FTPClient import org.apache.poi.ss.usermodel.WorkbookFactory import java.io.BufferedInputStream import java.io.FileOutputStream fun main(args: Array<String>) { val ftpClient = FTPClient() val server = "ftp.example.com" val port = 21 val username = "username" val password = "password" val remoteFilePath = "/path/to/file.xlsx" val localFilePath = "file.xlsx" // 本地保存路径 // 连接到 FTP 服务器 ftpClient.connect(server, port) ftpClient.login(username, password) // 下载文件 val inputStream = BufferedInputStream(ftpClient.retrieveFileStream(remoteFilePath)) val outputStream = FileOutputStream(localFilePath) inputStream.use { input -> outputStream.use { output -> input.copyTo(output) } } // 读取 Excel 文件 val workbook = WorkbookFactory.create(localFilePath) val sheet = workbook.getSheetAt(0) for (i in 0..sheet.lastRowNum) { val row = sheet.getRow(i) for (j in 0 until row.physicalNumberOfCells) { val cell = row.getCell(j) println(cell) } } // 关闭连接 ftpClient.logout() ftpClient.disconnect() } ``` 值得一提的是,这段代码仅是示例代码,没有进行错误处理和异常处理,实际使用需要根据具体情况进行适当的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值