前几天做用java导入execl数据,程序是去年一个新员工写的,当时测试数据是可以导入的,再多也没研究里面的方法合理不、能否优化都没有再考虑这些。
导入的文件比较多,我就想给你加个把成功导入的execl文件转移到另外一个文件夹下,转移是没有问题,可是删除就出了问题,看删除方法是没有问题,就开始看他写的代码,发现读取execl文件的流没有关闭,导致文件无法。
我就在try catch finally的finally中把这个流关闭,然后在进行我文件复制和删除。
我的复制文件方法和删除文件方法如下
导入的文件比较多,我就想给你加个把成功导入的execl文件转移到另外一个文件夹下,转移是没有问题,可是删除就出了问题,看删除方法是没有问题,就开始看他写的代码,发现读取execl文件的流没有关闭,导致文件无法。
我就在try catch finally的finally中把这个流关闭,然后在进行我文件复制和删除。
我的复制文件方法和删除文件方法如下
1
public
static
boolean
copyFile(String oldPath, String newPath)
{
2![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
try
{
3
int bytesum = 0;
4
int byteread = 0;
5
File oldfile = new File(oldPath);
6![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
if (oldfile.exists())
{ // 文件存在时
7
InputStream inStream = new FileInputStream(oldPath); // 读入原文件
8
FileOutputStream fs = new FileOutputStream(newPath);
9
byte[] buffer = new byte[1444];
10
int length;
11![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
while ((byteread = inStream.read(buffer)) != -1)
{
12
bytesum += byteread; // 字节数 文件大小
13
// System.out.println(bytesum);
14
fs.write(buffer, 0, byteread);
15
}
16
inStream.close();
17
fs.close();
18
}
19
return true;
20![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
} catch (Exception e)
{
21
// System.out.println("复制单个文件操作出错");
22
e.printStackTrace();
23
return false;
24
}
25
}
26![](/Images/OutliningIndicators/None.gif)
27![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/** */
/**
28
* 删除文件或者文件夹,对于文件夹遍历其子文件夹进行递归删除
29
*
30
* @param f -
31
* File对象
32
* @return 删除是否成功
33
*/
34![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
public
static
boolean
deleteFile(File f)
{
35![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
if (f.exists())
{
36
if (f.isFile())
37
return f.delete();
38![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
else if (f.isDirectory())
{
39
File[] files = f.listFiles();
40![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
for (int i = 0; i < files.length; i++)
{
41
if (!deleteFile(files[i]))
42
return false;
43
}
44
return f.delete();
45
} else
46
return false;
47
} else
48
return false;
49
}
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
2
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/InBlock.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
25
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
34
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
35
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)