一、今日学习内容:
1、文件
(1)文件操作
Java中文件操作的所有类都在java.io这个包里面,该包下面有一个File类,可以操作文件该类给人一种误解,当大家第一眼看到这个File 类时,会想到File类可以读写 文件,这是错误的。因为Java提供的File类,只能创建文件、删除文件、对文件属性进行操作,并不能对文件里面的内容进行读写操作。
用户在磁盘上寻找文件时,所历经的文件夹线路叫路径。路径分为绝对路径和相对路径。
#绝对路径:从根文件夹开始的路径,以“\” 作为开始。
#相对路径:从当前文件夹开始的路径。
在windows中路径的分割线是“/”或“\"; 在Linux或Unix中路径的分割线是“/”。
例如,C盘下面有一个文件夹叫Hello,用路径就可以这样表示:C:/Hello
如果C盘下面的文件夹Hello下面有一个文件名叫“Hello.java”, 那么,相对于Hello .文件夹,就可以这样写:Hello.java
(2)目录管理
File类中有一个listFiles()方法可 以搜索出某个目录下面所有的方法,但是目录下面还有目录,也是要搜索的,这时可以使用递归。以下代码演示了如何搜索整个目录。
注:java对文件的基本操作如下;
package
cn.edu.fhj.day009.FileDemo;
import
java.io.File;
import
java.io.IOException;
public
class
FileDemo {
public
static
void
main(String[] args)
throws
IOException {
// 将路径描述成File对象
// File file = new File("d:/java_fd_test/fileDemo.txt");
File file =
new
File(
"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm"
);
boolean
exists = file.exists();
// 如果路径所表示的文件或者文件夹存在,则返回true
System.out.println(exists);
// 判断该file是文件夹还是文件
boolean
directory = file.isDirectory();
System.out.println(directory);
// true
boolean
ifFile = file.isFile();
System.out.println(ifFile);
// false
// 获取文件的绝对路径
String absolutePath = file.getAbsolutePath();
System.out.println(absolutePath);
// 可以获取文件名或文件夹名
String name2 = file.getName();
System.out.println(name2);
File file2 =
new
File(
"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm/Demo.txt"
);
ifFile = file2.isFile();
// true
System.out.println(ifFile);
// 获取文件名
String name = file2.getName();
System.out.println(name);
// 获取上一级目录的file对象
File parentFile = file2.getParentFile();
System.out.println(parentFile.getAbsolutePath());
// 获取上一级目录的路径字符串
String parent = file2.getParent();
System.out.println(parent);
// 获取文件长度 字节(8个bit-- 二进制位)
long
length = file2.length();
System.out.println(length);
System.out.println(
"------------------------"
);
// 获取指定目录下的子节点的名称字符串
String[] list = file.list();
for
(String s : list) {
System.out.println(s);
}
System.out.println(
"------------------------"
);
// 获取指定目录下的子节点的File描述对象
File[] listFiles = file.listFiles();
for
(File f : listFiles) {
System.out.println(f.getAbsolutePath());
}
System.out.println(
"------------------------"
);
// 创建一个文件夹
File f =
new
File(
"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm/xx/yy/zz"
);
// boolean mkdir = f.mkdir(); // 不能创建多级目录
// System.out.println(mkdir);
// boolean mkdirs = f.mkdirs(); // 可以创建多级目录
// System.out.println(mkdirs);
//
// // 创建文件
File file3 =
new
File(
"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm/xx/yy/zz/cls.txt"
);
boolean
createNewFile = file3.createNewFile();
System.out.println(createNewFile);
// 重命名文件:其实可以把路径都给改了
file3.renameTo(
new
File(
"F:/up_mouth_10/code_data/Data_Structure_And_Algorithm/xx/yy/zz/cls001.txt"
));
// 删除文件
boolean
delete = file3.delete();
System.out.println(delete);
}
}
二、遇到的问题:
不理解文件操作流程。
三、明日学习计划:
继续学习第十二章的知识,继续阅读《大道至简》。