java-Java excel 为什么导入文件第一次导入成功,第二次就失败呢?

问题描述

Java excel 为什么导入文件第一次导入成功,第二次就失败呢?

附上代码段:

file:是获取到的文件内容
jdkFile:是new出了一个临时文件
file.transferTo(jdkFile); : 把内容赋给临时文件
第二次到(file.transferTo(jdkFile); )这句话的时候直接异常,为什么?

解决方案

可能是转换后就自动把流关闭了。所以第二次不好用了。

解决方案二:

异常:

 java.io.IOException: Destination file [E:eclipsetemp] already exists and could not be deleted
    at org.springframework.web.multipart.commons.CommonsMultipartFile.transferTo(CommonsMultipartFile.java:128)
    at com.lovefly.controller.student.StudentController.loadin(StudentController.java:74)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

解决方案三:

Destination file [E:eclipsetemp] already exists and could not be deleted
目标文件已存在,不能被删除。
你代码里是不是有覆盖文件的操作

解决方案四:

我试着重现你说的问题。但是没重现了。所以具体原因我也无法确定。
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + fileExt;
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(savePath+newFileName));
InputStream in = myfile.getInputStream();
BufferedInputStream bis = new BufferedInputStream(in);
int n = 0;
byte[] b = new byte[1024];
while ((n = bis.read(b)) != -1) {
bos.write(b, 0, n);
}
bos.flush();
bos.close();
bis.close();


实现不行试试用流操作。

解决方案五:

也可以把方法全截出来,在代码上帮你找原因。
主要错误出现在
at com.lovefly.controller.student.StudentController.loadin(StudentController.java:74)

时间: 2024-09-22 21:21:37

java-Java excel 为什么导入文件第一次导入成功,第二次就失败呢?的相关文章

java的excel表格上传实现导入mysql数据库功能

问题描述 java的excel表格上传实现导入mysql数据库功能 在网页上有个按钮要实现点击按钮选择文件实现将文件导入mysql数据库的功能,上百度不知道应该用什么关键词搜索,求技术大牛给个网址 解决方案 参考一下 import java.io.FileInputStream;<br> import java.io.IOException;<br> import java.sql.Connection;<br> import java.sql.DriverManage

【java】获取解析资源文件的方法

关于资源文件的读取,有很多种方法,下面补充了多种方法 1.java.util.ResourceBundle 使用java自带的util包下的ResourceBundle类获取,使用方法最简单 //获取资源文件中键值对 ResourceBundle bundle = ResourceBundle.getBundle("资源文件的名字,不带后缀"); bundle.getString("键名"); 注意点:①资源文件直接放在项目的src下,也就是你项目的classpat

导入-Java从excel读取数据时,能够自己选择excel文件,不用在代码中将文件目录写死!

问题描述 Java从excel读取数据时,能够自己选择excel文件,不用在代码中将文件目录写死! 项目是进行单机版和网络版的数据对比,需要将单机版导出来的数据(excel表格,固定格式)导入网络版进行对比,网络版在导入数据时能提示选择导入的excel文件,不用在Java代码中将要读取数据的excel表格的目录写死.谢谢您的帮助! 解决方案 JAVA读取EXCEL用的比较多的是POI类库,参考Java对Excel(0307)进行上传.解析.验证.入库,或者你搜索一下java poi,有很多文章的

页面&amp;amp;lt;img&amp;amp;gt;标签显示的图片,请问用java可以导入到excel中么?怎么导入?

问题描述 页面<img>标签显示的图片,请问用java可以导入到excel中么?怎么导入? oracle存储图片的类型是blob,这个是可以在页面读取出来的,但是怎么导入到excel中呢? 解决方案 img需要根据src用httpclient先下载,然后再插入图片到excel中. 解决方案二: 如果是本地的图片,并且blob类型,存储的,需要导出到文件. 解决方案三: http://stackoverflow.com/questions/681206/insert-image-into-exc

Java 使用poi把数据库中数据导入Excel的解决方法_java

Java 利用poi把数据库中数据导入Excel 效果: 使用时先把poi包导入工程的path,注意只需要导入poi包即可,下载后有三个jar包 核心代码: 连接数据库:DBConnection.java 复制代码 代码如下: package org.xg.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;i

java实现excel导入数据的工具类_java

导入Excel数据的工具类,调用也就几行代码,很简单的. 复制代码 代码如下: import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;import org.apache.commons.beanutils.BeanUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory; import java.io.IOExc

java 读取 Excel (20W条数据)并导入到 数据库解决方案

问题描述 现在做个项目,要把 Excel 通过 java web 导入到数据库,在 action 里 java 内存泄漏 (20 W 条数据).于是想到把文件上传到服务器,然后 java 直接连接 Excel 本身数据库读取数据 insert 到 SQLSERVER 数据库 不知可行不,有没有更好的建议 解决方案 转为CSV上传,可以用SuperCSV读或者用POI分段读取EXCEL解决方案二:1 增大jvm 2 任何读取大的数据都不应该一次性读取,而是需要分批次处理,也就是一次处理几千条数据条

java代码实现dmp导入文件路径存在空格如何解决

问题描述 java代码实现dmp导入文件路径存在空格如何解决 使用java调用Runtime.getRuntime().exec() 时,当导入文件路径存在空格时会提示无法打开指定路径的文件,而且提示的路径是以原有路径的空格分割的?应该如何解决空格问题?求教导 解决方案 打开的文件路径上不要有空格.

服务器端java文件无法导入eclipse

问题描述 服务器端java文件无法导入eclipse 服务器端java文件无法导入eclipse 没有看到有导入服务器端文件的选项 解决方案 java文件直接拷进去不就行了 解决方案二: 导不进去,就拖进去呗 解决方案三: java文件难道还有不一样的?你指的是工程还是具体的文件?