java本地文件操作
2017-03-29 11:58
375 查看
一、File类简介
在Java中所有的事务都是对象,文件也不例外,java中使用File类表示文件(包括文件和文件夹).
二、文件的创建、删除、重命名
2.1文件创建
首先创建一个File对象f1, 传入的string参数为文件名,然后使用createNewFile()方法即可创建该文件,文件创建成功createNewFile()方法会返回true,创建失败会返回false.如果文件已经存在会创建失败,可用exists() 方法检测文件是否存在。package ucas.file.test; import java.io.File; import java.io.IOException; public class FileDemo01 { public static void main(String[] args) { File f1 = new File("Test.txt"); try { if(f1.exists()){ System.out.println("文件已存在无须创建!"); }else{ if (f1.createNewFile()) { System.out.println("文件创建成功!"); }else{ System.out.println("文件创建失败!"); } } } catch (IOException e) { e.printStackTrace(); } } }1
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
1
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
2.2文件删除
文件删除使用delete()方法。package ucas.file.test; import java.io.File; public class FileDeete { public static void main(String[] args) { File f1 = new File("Test.txt"); if (f1.exists() == false) { System.out.println("文件不存在,删除失败!"); } else { if (f1.delete()) { System.out.println("删除成功!"); }else{ System.out.println("删除失败"); } } } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2.3文件重命名
在src目录下存在一个Test.txt文本文件,修改文件名:package ucas.file.test; import java.io.File; public class FileRename { public static void main(String[] args) { File f1=new File("src/Test.txt"); File f2=new File("src/TestTwo.txt"); f1.renameTo(f2); } }1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
三、文件夹的创建、删除、重命名
3.1创建文件夹
创建文件夹使用mkdir()方法:package ucas.file.test; import java.io.File; public class FileFolder { public static void main(String[] args) { File dir1=new File("src/Folder"); dir1.mkdir(); } }1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
这样就走src目录下新建了一个Folder文件夹,刷新后可见.
创建文件夹时先判断是否存在,这样更加规范:
package ucas.file.test; import java.io.File; public class FileFolder { public static void main(String[] args) { File dir1=new File("src/Folder"); if(dir1.exists()){ System.out.println("文件夹已存在!"); }else{ if(dir1.mkdir()){ System.out.println("文件夹创建成功"); }else{ System.out.println("文件夹创建失败"); } } } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
3.2创建多级文件夹
创建含义子文件夹的文件夹使用mkdirs()函数:File dir1=new File("Folder/one/two"); dir1.mkdirs()1
2
1
2
3.3文件夹的删除
删除文件夹使用delete()函数,但是对于非空文件夹不能一次性删除 删除非空文件夹,可以采用递归的思想:
public static void deleteFolder(File dir) { File dirFile[] = dir.listFiles(); for (int i = 0; i < dirFile.length; i++) { if (dirFile[i].isDirectory()) { deleteFolder(dirFile[i]); } dirFile[i].delete(); } }1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
四、文件属性的读取
package ucas.file.demo; import java.io.File; public class FileDemo3 { public static void main(String[] args) { // 文件属性的读取 File file = new File("text.txt"); // 判断文件是否存在 System.out.println("判断文件是否存在:" + file.exists()); // 读取文件名称 System.out.println("读取文件名称:" + file.getName()); // 读取文件路径 System.out.println("读取文件路径:" + file.getPath()); // 读取文件绝对路径 System.out.println("读取文件绝对路径:" + file.getAbsolutePath()); // 读取文件父级路径 System.out.println("父级文件路径:" + new File(file.getAbsolutePath()).getParent()); // 读取文件大小 System.out.println("文件大小:" + (float) file.length() / 1000 + "Kb"); // 文件是否被隐藏 System.out.println("文件是否被隐藏:" + file.isHidden()); // 文件是否可读 System.out.println("文件是否可读:" + file.canRead()); // 文件是否可写 System.out.println("文件是否可写:" + file.canWrite()); //判断是否为文件夹 System.out.println("判断是否为文件夹:"+file.isDirectory()); } }1
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
1
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
五、文件属性的设置
文件可读、可写、只读方式设置://将文件属性设置为可写: file.setWritable(true); //将文件属性设置为可读: file.setReadable(true); //设定文件只读: file.setReadOnly();1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
六、遍历文件夹
package ucas.file.demo; import java.io.File; public class FileDemo5 { public static void main(String[] args) { // 遍历文件夹 //File dir=new File("/Users/yaopan/Documents"); File dir=new File("../"); printFiles(dir,1); } public static void printFiles(File dir,int tab){ if(dir.isDirectory()){ File next[]=dir.listFiles(); for (int i = 0; i < next.length; i++) { for(int j=0;j<tab;j++){ System.out.print("|--"); } System.out.println(next[i].getName()); if(next[i].isDirectory()){ printFiles(next[i],tab+1); } } }else{ System.out.println("文件路径错误."); } } }1
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
1
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
输出结果:
|--.classpath |--.DS_Store |--.project |--.settings |--|--org.eclipse.jdt.core.prefs |--bin |--|--.DS_Store |--|--Folder |--|--|--one |--|--|--|--two |--|--TestTwo.txt |--|--ucas |--|--|--collection |--|--|--|--demo |--|--|--|--|--HashSetDemo.class |--|--|--|--|--IteratorDemo.class |--|--|--|--|--ListDemo.class |--|--|--|--|--MapDemo01.class |--|--|--|--|--SetDemo.class |--|--|--|--|--VectorDemo.class |--|--|--file |--|--|--|--demo |--|--|--|--|--FileDemo1.class |--|--|--|--|--FileDemo2.class |--|--|--|--|--FileDemo3.class |--|--|--|--|--FileDemo4.class |--|--|--|--|--FileDemo5.class |--|--|--|--|--FileDemo6.class |--|--|--|--test |--|--|--|--|--FileDeete.class |--|--|--|--|--FileDemo01.class |--|--|--|--|--FileFolder.class |--|--|--|--|--FileRename.class |--|--|--xml |--|--|--|--demo |--|--|--|--|--XmlDemo1.class |--My Folder |--|--two |--|--|--three |--src |--|--.DS_Store |--|--Folder |--|--|--1.txt |--|--|--1副本 2.txt |--|--|--1副本 3.txt |--|--|--1副本 4.txt |--|--|--1副本 5.txt |--|--|--1副本 6.txt |--|--|--1副本 7.txt |--|--|--1副本 8.txt |--|--|--1副本 9.txt |--|--|--1副本.txt |--|--|--one |--|--TestTwo.txt |--|--ucas |--|--|--collection |--|--|--|--demo |--|--|--|--|--HashSetDemo.java |--|--|--|--|--IteratorDemo.java |--|--|--|--|--ListDemo.java |--|--|--|--|--MapDemo01.java |--|--|--|--|--SetDemo.java |--|--|--|--|--VectorDemo.java |--|--|--file |--|--|--|--demo |--|--|--|--|--FileDemo1.java |--|--|--|--|--FileDemo2.java |--|--|--|--|--FileDemo3.java |--|--|--|--|--FileDemo4.java |--|--|--|--|--FileDemo5.java |--|--|--|--|--FileDemo6.java |--|--|--|--test |--|--|--|--|--FileDeete.java |--|--|--|--|--FileDemo01.java |--|--|--|--|--FileFolder.java |--|--|--|--|--FileRename.java |--|--|--xml |--|--|--|--demo |--|--|--|--|--XmlDemo1.java |--tangshi.txt |--tangshi2.txt |--Test.txt |--text.txt1
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
1
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
七、文件的简单读写
工程目录下放一个tangshi.txt,里面输入文字,读取输出与写入:package ucas.file.demo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; public class FileDemo6 { public static void main(String[] args) { // 文件的简单读和写 File file = new File("tangshi.txt"); try { FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader bfr = new BufferedReader(isr); String line; while ((line = bfr.readLine()) != null) { System.out.println(line); } bfr.close(); isr.close(); fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } File file2 = new File("tangshi2.txt"); try { FileOutputStream fos = new FileOutputStream(file2); OutputStreamWriter osq = new OutputStreamWriter(fos); BufferedWriter bfw = new BufferedWriter(osq); bfw.write("登鹳雀楼\n"); bfw.write("唐 王之涣\n"); bfw.write("白日依山尽,黄河入海流。\n"); bfw.write("白日依山尽,黄河入海流。\n"); bfw.close(); osq.close(); fos.close(); System.out.println("写入完成!"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
相关文章推荐
- java16.语言进阶------本地文件操作---文件的简单读写
- java13.语言进阶------本地文件操作---文件夹的创建、重命名、删除
- Java 本地文件常用操作
- java本地文件操作
- Java本地文件操作(三)文件属性的读取
- java本地文件的简单操作
- Java本地文件操作(五)遍历文件夹
- java的本地文件操作
- java本地文件操作
- javabean操作文件正确,但是Jsp调用javabean时文件路径出错问题解决之JavaBean访问本地文件实现路径无关实现方法
- java15.语言进阶------本地文件操作---遍历文件夹
- 06-Java 本地文件操作
- Java本地文件操作
- JAVA实现:将文件从本地上传到HDFS上、从HDFS上读取等操作
- Java本地文件(File类的操作)
- 本地文件java常用操作
- java语言基础入门——本地文件操作
- Java本地文件操作(四)文件属性的设置
- Java本地文件操作(一)文件的创建、删除、重命名
- Java本地文件操作(六)文件的简单读写