本文主要内容:
(1)File类
(2)File类主要方法
1.I/O相关
流:数据流动
数据流动的方向:读数据(输入input)、写数据(输出output)
文件流、字符流、对象流、网络流
2.文件
(1)文件:电脑中的存储的形式,文件有不同的格式:.txt/.doc/.ppt/.mp4…
(2)文件夹:目录路径
(3)File:与电脑上的文件或文件夹产生一一对应的映射关系,它是一个类,在java.io包中,它是文件或目录路径名的抽象表示形式
(4)File与真实硬盘中的文件或文件夹不是一个东西,File是在内存中的一个对象,它可以映射为硬盘上的文件或文件夹
(5)File类中的常用方法
boolean = canRead();boolean = canWrite();boolean = isHidden();
boolean = isFile();boolean = isDirectory();
long = length();获取文件中字节的个数
long = lastModified();获取文件最后修改的时间(毫秒值)
String path = getAbsolutionPath();获得文件的绝对路径
String name= getName();获取文件的名字
public class TestFile {
public static void main(String[] args) {
File file = new File("D://test//Test.txt");
System.out.println(file.canRead());//T
System.out.println(file.canWrite());//T
System.out.println(file.canExecute());//T
System.out.println(file.isFile());//T
System.out.println(file.isDirectory());//F
System.out.println(file.isHidden());//F
long l = file.length();
System.out.println(l);//0
long time = file.lastModified();
Date date = new Date(time);
System.out.println(time);//1573472562528
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
System.out.println(sdf.format(date));//2019-42-11 07:42:42
String name = file.getName();
System.out.println(name);//Test.txt
String path = file.getAbsolutePath();
System.out.println(path);//D:\test\Test.txt——>绝对路径
File file1 = new File("test//Test.txt");
String path1 = file1.getAbsolutePath();
System.out.println(path1);
//D:\Java代码\practice01\IdeaProjects\practice\test\Test.txt
}
}
(6)绝对路径与相对路径的区别
绝对路径:可以通过完整的字符串定位盘符、文件夹、文件
相对路径:没有盘符的写法,当前工程(项目)所在的位置找寻
(7)File类的重要方法
boolean = createNewFile();创建新的文件
boolean = mkdir();创建新的文件夹,外层没有,不能创建
boolean = mikdirs();创建新的文件夹,外层没有,可以自动创建
String pname = getParent();获取当前file的父亲file的名字
File file = getParentFile();获取当前file的父亲file对象
String[] names = list();获取当前file的所有儿子名字
File[] files = listFile();获取当前file的所有儿子对象
boolean = delete();删除文件或空的文件夹,不能删除带元素的文件夹
public class TestFile1 {
public static void main(String[] args) {
File file = new File("D://test//abc.txt");
try {
boolean value = file.createNewFile();
System.out.println(value);//T
} catch (IOException e) {
e.printStackTrace();
}
String name = file.getParent();
System.out.println(name);//D:\test
File file2 = file.getParentFile();//D:\test
System.out.println(file2.getAbsolutePath());
File file1 = new File("D://test//bbb//inner");
boolean value = file1.mkdir();//F需要外层父元素正式存在
System.out.println(value);
boolean value1 = file1.mkdirs();
//可以创建文件夹,如果外层也没有,也会同时创建
System.out.println(value1);//T
//遍历寻找父类
File newFile = new File("D://test//bbb//inner");
File pFile = newFile.getParentFile();
while (pFile!=null){
System.out.println(pFile.getAbsolutePath());
pFile = pFile.getParentFile();
//D:\test\bbb
//D:\test
//D:\
}
File file3 = new File("D://test//bbb//inner");
File[] files = file3.listFiles();
//数组对象为空,证明当前file3是一个文件
//数组对象不为空,证明当前file3是一个文件夹
//数组对象长度不为0,证明当前file3不是一个空的文件夹,文件夹中有元素
System.out.println(files.length);//0
}
}