java.io.File类 :
1. File类是在java.io包下的
2. File用来表示一个文件(.mp3 .mp4 .avi .txt .doc) 还可以代表一个目录
3. File可以用来创建文件和目录 还可以获取目录或文件的大小等操作。 不能对文件内容进行添加(对于文件内容的添加需要使用IO流)。
4. File往往作为流的节点。往往我们会将File类的对象传入到IO流的构造器中。
/*
* File类的构造器
* new File(String pathName);
* new File(String path,String name);
* 绝对路径 : 包含盘符在内的文件路径的全名称。
* 相对路径: 相对于当前项目下的路径
*/
@Test
public void test(){
new File("F:\\0508\\code\\demo\\hello.txt"); //用来表示一个文件
new File("F:\\0508/code/demo/hello.txt"); //用来表示一个文件
new File("Hello.txt"); //表示一个文件
new File("F:\\0508"); //表示一个目录
new File("F:/0508/code/demo","hello.txt"); //表示的就是 F:/0508/code/demo/hello.txt
}
/*
方法:
getName()
getPath()
getAbsoluteFile()
getAbsolutePath()
getParent()
toPath()
renameTo(File newName)
*/
@Test
public void test2(){
File file = new File("E:\\123\\ccc"); //表示的是一个目录
File file2 =new File("Hello.txt"); //表示的是一个文件
System.out.println(file.getName());
System.out.println(file.getPath());
System.out.println(file.getAbsoluteFile());
System.out.println(file.getAbsolutePath());
System.out.println(file.getParent());
System.out.println(file.toPath());
System.out.println("------------------------------------");
System.out.println(file2.getName());
System.out.println(file2.getPath());
System.out.println(file2.getAbsoluteFile());
System.out.println(file2.getAbsolutePath());
System.out.println(file2.getParent());
System.out.println(file2.toPath());
/*
ccc
E:\123\ccc
E:\123\ccc
E:\123\ccc
E:\123
E:\123\ccc
------------------------------------
Hello.txt
Hello.txt
F:\0508\code\day21\Hello.txt
F:\0508\code\day21\Hello.txt
null
Hello.txt
*/
}
/*
* exists()
canWrite()
canRead()
isFile()
isDirectory()
*
*/
@Test
public void test3(){
/*
* File也可以表示不存在的目录或者文件
*/
File file = new File("E:\\123\\ccc"); //表示的是一个目录
File file3 = new File("E:\\123\\cc"); //表示的是一个目录
File file2 =new File("Hello.txt"); //表示的是一个文件
System.out.println(file3.exists());
System.out.println(file3.canWrite());
System.out.println(file3.canRead());
System.out.println(file3.isFile());
System.out.println(file3.isDirectory());
/*
* false
false
false
false
false
*/
System.out.println("--------------------------");
System.out.println(file.exists());
System.out.println(file.canWrite());
System.out.println(file.canRead());
System.out.println(file.isFile());
System.out.println(file.isDirectory());
/*
* true
true
true
false
true
*/
System.out.println("----------------------------------");
// file2.setReadOnly(); //设置文件只可以读
System.out.println(file2.exists());
System.out.println(file2.canWrite());
System.out.println(file2.canRead());
System.out.println(file2.isFile());
System.out.println(file2.isDirectory());
/*
*
true
true
true
true
false
*/
}
/*
* lastModified()
length()
*/
@Test
public void test4(){
File file2 =new File("Hello.txt"); //表示的是一个文件
System.out.println(file2.lastModified()); //文件最后修改的时间
System.out.println(file2.length()); //文件的大小
}
/*
* createNewFile() : 创建文件
* 注意:文件所在的目录必须存在,如果不存在则会报异常
delete()
*/
@Test
public void test5() throws Exception{
// File file = new File("ddd.txt");
// file.createNewFile(); //创建文件
// file.delete();
// if(file.exists()){
// file.delete();
// }else{
// file.createNewFile();
// }
File file2 = new File("E:/aaa/ddd.txt");
if(!(file2.exists())){
file2.createNewFile();
}
}
/*
* 对目录操作
*
* mkdir()
mkdirs()
delete()
list()
listFiles()
*/
@Test
public void test6(){
/*
* 当创建的目录的父目录如果不存在的情况下
* mkdir : 不可以创建目录
* mkdirs : 可以创建目录(包括父目录也会创建)
*/
// File file = new File("E:/bbb/ccc/ddd");
// file.mkdir();
// File file2 = new File("E:/bbb/ccc/fff");
// file2.mkdirs();
/*
* 当创建的目录的父目录如果存在的情况下
* mkdir
* mkdirs
* 都可以创建目录
*/
// File file = new File("E:/bbb/ccc/eee");
// file.mkdir();
File file2 = new File("E:/bbb/ccc/ggg");
file2.mkdirs();
}
@Test
public void test7(){
// File file = new File("E:/bbb/ccc/ggg");
// file.delete();
File file = new File("E:/bbb");
String[] list = file.list();
for (String string : list) {
System.out.println(string);
}
System.out.println("------------------------------------------");
File[] listFiles = file.listFiles();
for (File file2 : listFiles) {
System.out.println(file2);
}
}
/*
* renameTo(File newName)
* File newName = new File("E:/bbb/Hello.txt")
* 将当前文件移动到 newName中
* 注意: newName的父目录必须存在。
*
*/
@Test
public void test8(){
File file = new File("Hello.txt");
boolean renameTo = file.renameTo(new File("E:/bbb/Hello.txt"));
System.out.println(renameTo);
}