java刪除文件失敗
前幾天做用java導入execl數據,程序是去年一個新員工寫的,當時測試數據是可以導入的,再多也沒研究里面的方法合理不、能否優化都沒有再考慮這些。
導入的文件比較多,我就想給你加個把成功導入的execl文件轉移到另外一個文件夾下,轉移是沒有問題,可是刪除就出了問題,看刪除方法是沒有問題,就開始看他寫的代碼,發現讀取execl文件的流沒有關閉,導致文件無法。
我就在try catch finally的finally中把這個流關閉,然后在進行我文件復制和刪除。
我的復制文件方法和刪除文件方法如下
導入的文件比較多,我就想給你加個把成功導入的execl文件轉移到另外一個文件夾下,轉移是沒有問題,可是刪除就出了問題,看刪除方法是沒有問題,就開始看他寫的代碼,發現讀取execl文件的流沒有關閉,導致文件無法。
我就在try catch finally的finally中把這個流關閉,然后在進行我文件復制和刪除。
我的復制文件方法和刪除文件方法如下
1
public static boolean copyFile(String oldPath, String newPath) {
2
try {
3
int bytesum = 0;
4
int byteread = 0;
5
File oldfile = new File(oldPath);
6
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
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
} catch (Exception e) {
21
// System.out.println("復制單個文件操作出錯");
22
e.printStackTrace();
23
return false;
24
}
25
}
26
27
/**
28
* 刪除文件或者文件夾,對于文件夾遍歷其子文件夾進行遞歸刪除
29
*
30
* @param f -
31
* File對象
32
* @return 刪除是否成功
33
*/
34
public static boolean deleteFile(File f) {
35
if (f.exists()) {
36
if (f.isFile())
37
return f.delete();
38
else if (f.isDirectory()) {
39
File[] files = f.listFiles();
40
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
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49
