File类的使用
java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关
File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)
File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。 
想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。
File对象可以作为参数传递给流的构造器
路径分隔符
路径中的每级目录之间用一个路径分隔符隔开。
路径分隔符和系统有关:windows和DOS系统默认使用“\”来表示 UNIX和URL使用“/”来表示
Java程序支持跨平台运行,因此路径分隔符要慎用。为了解决这个隐患,File类提供了一个常量: public  static final String separator。根据操作系统,动态的提供分隔符


File类的构造器
- public File(String pathname) 以pathname为路径创建File对象,可以是绝对路径或者相对路径。 - 
- 绝对路径:是一个固定的路径,从盘符开始
- 相对路径:是相对于某个位置开始
 
- public File(String parent,String child) 以parent为父路径,child为子路径创建File对象。 
- public File(File parent,String child) 根据一个父File对象和子文件路径创建File对象
  
 
File类的常用方法-获取功能
- getAbsolutePath():获取绝对路径
- getPate():获取路径
- getName():获取名称
- getParent():获取上层文件目录路径。若无,返回null
- length():获取文件长度(即:字节数)。不能获取目录的长度。
- lastModified():获取最后一次的修改时间,毫秒值


- list():获取指定目录下的所有文件或者文件目录的名称数组
- listFiles():获取指定目录下的所有文件或者文件目录的File数组


File类的常用方法-重命名功能
- renameTo(File dest):把文件重命名为指定的文件路径
- 比如:file1.renameTo(file2)为例
- 要想保证返回true,需要file1在硬盘中是存在的,且file2不能在硬盘中存在。
 


File类的常用方法-判断功能
- isDirectory():判断是否是文件目录
- isFile() :判断是否是文件
- exists() :判断是否存在
- canRead() :判断是否可读
- canWrite() :判断是否可写
- isHidden() :判断是否隐藏


## File类的常用方法-创建和删除功能
- delete():删除文件或者文件夹 删除注意事项:Java中的删除不走回收站。 
- createNewFile() :创建文件。若文件存在,则不创建,返回false
  
 
- mkdir() :创建文件目录。如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。 
- mkdirs() :创建文件目录。如果此文件目录存在,就不创建了。如果上层文件目录不存在,一并创建。 

注意
相对路径在IDEA和Eclipse中使用的区别?
- IDEA - 
- 如果使用单元测试方法,使用相对路径基于当前的Moudule的。
- 如果使用mian()测试,使用相对路径基于当前Project的。
 
- Eclipse - 
- 单元测试方法还是main(),相对于路径都是基于当前Project的。
 
| 12
 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
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 
 | import org.junit.Test;
 import java.io.File;
 import java.io.IOException;
 
 
 
 
 
 
 
 public class FileTest {
 
 
 
 
 @Test
 public void test1() {
 
 
 File file = new File("hello.txt");
 File file2 = new File("C:\\Data\\IntelliJ IDEA Work Space\\IO\\he.txt");
 
 System.out.println(file);
 System.out.println(file2);
 
 
 File file3 = new File("C:\\Data\\IntelliJ IDEA Work Space\\IO", "IO");
 System.out.println(file3);
 
 
 File file4 = new File(file3, "hi.txt");
 System.out.println(file4);
 }
 
 
 
 
 
 
 
 
 
 
 
 
 @Test
 public void test2() {
 File file1 = new File("hello.txt");
 File file2 = new File("C:\\Data\\IntelliJ IDEA Work Space\\IO\\he.txt");
 
 
 System.out.println(file1.getAbsoluteFile());
 System.out.println(file1.getPath());
 System.out.println(file1.getName());
 System.out.println(file1.getParent());
 System.out.println(file1.length());
 System.out.println(file1.lastModified());
 
 System.out.println();
 
 
 System.out.println(file2.getAbsoluteFile());
 System.out.println(file2.getPath());
 System.out.println(file2.getName());
 System.out.println(file2.getParent());
 System.out.println(file2.length());
 System.out.println(file2.lastModified());
 
 }
 
 @Test
 public void test3() {
 File file = new File("C:\\Data\\IntelliJ IDEA Work Space\\IO");
 
 String[] list = file.list();
 for (String s : list) {
 System.out.println(s);
 }
 
 System.out.println();
 
 File[] files = file.listFiles();
 for (File f : files) {
 System.out.println(f);
 }
 }
 
 
 
 
 
 
 @Test
 public void test4() {
 File file1 = new File("hello.txt");
 File file2 = new File("C:\\Data\\IntelliJ IDEA Work Space\\IO\\hello.txt");
 
 
 boolean renameTo = file1.renameTo(file2);
 System.out.println(renameTo);
 
 
 }
 
 
 
 
 
 
 
 
 
 @Test
 public void test5() {
 File file1 = new File("hello.txt");
 
 System.out.println(file1.isDirectory());
 System.out.println(file1.isFile());
 System.out.println(file1.exists());
 System.out.println(file1.canRead());
 System.out.println(file1.canWrite());
 System.out.println(file1.isHidden());
 
 System.out.println();
 
 File file2 = new File("c:\\Data");
 System.out.println(file2.isDirectory());
 System.out.println(file2.isFile());
 System.out.println(file2.exists());
 System.out.println(file2.canRead());
 System.out.println(file2.canWrite());
 System.out.println(file2.isHidden());
 
 }
 
 
 
 
 
 
 
 
 
 
 
 @Test
 public void test6() throws IOException {
 File file1 = new File("hi.txt");
 if (!file1.exists()) {
 
 file1.createNewFile();
 System.out.println("创建成功");
 } else {
 file1.delete();
 System.out.println("删除成功");
 }
 }
 
 @Test
 public void test7() {
 
 File file1 = new File("d:\\io\\io1\\io3");
 
 boolean mkdir = file1.mkdir();
 if (mkdir) {
 System.out.println("创建成功1");
 }
 
 File file2 = new File("d:\\io\\io1\\io4");
 
 boolean mkdir1 = file2.mkdirs();
 if (mkdir1) {
 System.out.println("创建成功2");
 }
 
 File file3 = new File("D:\\io\\io1\\io4");
 System.out.println(file3.delete());
 }
 
 }
 
 |