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的。
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 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()); }
}
|