概述:
1.文件是保存数据的地方,既可以保存图片,也可以保存视频和声音
2.文件在程序中是以流的形式来操作的
3.从内存到磁盘需要通过输入流和输出流来完成操作文件
流:
数据在数据源(文件)和程序(内存)之间经历的路径
输入流:
数据从数据源(文件)到程序(内存)的路径
输出流:
数据从程序(内存)到数据源(文件)的路径
创建文件
创建文件的相关构造器和方法:
new File(String pathname)//根据路径构建一个File对象
new File(String parent,String child)//根据父目录文件 + 子路径创建
new File(String parent,String child)//根据父目录+ 子路径创建
//创建文件
//方式1
//new File(String pathname):根据路径构建一个File对象
@Test
public void create01(){
String filePath = "d:\\news01.txt";
File file = new File(filePath);//对象关联
try {
file.createNewFile();//创建对象
System.out.println("new01文件创建成功...");
} catch (IOException e) {
e.printStackTrace();
}
}
//方法2
//new File(File parent ,String child):根据父目录文件 + 子路径构建
@Test
public void create02(){
File parentFile = new File("d:\\");
String fileName = "new02.txt";
File file = new File(parentFile,fileName);//该file仅是一个对象(内存中)
try {
file.createNewFile();//创建文件(在磁盘创建改文件)
System.out.println("new02文件创建成功...");
} catch (IOException e) {
e.printStackTrace();
}
}
//方式3
//new File(String parent,String child):根据父目录 + 子路径构建
@Test
public void create03(){
String parentPath = "d:\\";
String fileName = "new03.txt";
File file = new File(parentPath,fileName);
try {
file.createNewFile();
System.out.println("new03文件创建成功...");
} catch (IOException e) {
e.printStackTrace();
}
}
获取文件信息
常用的文件操作
getName、getAbsolutePath、getParent、length、exists、isFile、isDirectory
//获取文件信息
//先添加需要获取文件的地址
String fileName = "d:\\work\\han.txt";
File file = new File(fileName);
//1.调用方法,获取对应的文件名
System.out.println("文件名:" + file.getName());
//2.获取文件的绝对路径
System.out.println("文件绝对路径:" + file.getAbsolutePath());
//3.获取文件的父级目录
System.out.println("文件父级目录:" + file.getParent());
//4.H获取文件的大小
System.out.println("文件名:" + file.length());
//5.判断文件是否存在
System.out.println("判断文件是否存在:" + file.exists());
//6.判断是不是一个文件
System.out.println("是不是一个文件:" + file.isFile());
//7.判断是不是一个目录
System.out.println("判断是不是一个目录:" + file.isDirectory());
目录操作
目录的操作和文件删除
mkdir创建一级目录、mkdirs创建多级目录、delete删除空目录或文件
@Test
//1.文件的删除
public void fileDirectory(){
//创建一个对象
String fileName = "d:\\new02.txt";
File file = new File(fileName);
//判断new02文件是否存在,若存在就将其删除
if(file.exists()){
if(file.delete()){
System.out.println(fileName + ":删除成功...");
}else {
System.out.println(fileName + ":删除失败...");
}
}else {
System.out.println("该文件不存在...");
}
}
@Test
//2.判断目录demo是否存在,存在就删除,否则就不存在
public void fileDirectory02(){
//创建一个对象
String fileName = "d:\\demo";
File file = new File(fileName);
//判断demo目录是否存在,若存在就将其删除
if(file.exists()){
if(file.delete()){
System.out.println(fileName + ":删除成功...");
}else {
System.out.println(fileName + ":删除失败...");
}
}else {
System.out.println("该目录不存在...");
}
}
@Test
//3.判断d:\\work01\\aa\\bb\\cc 目录是否存在,若存在就提示存在,否则就创建
public void fileDirectory03() {
String fileName = "d:\\work01\\aa\\bb\\cc";
File file = new File(fileName);
if(file.exists()){
System.out.println("该目录存在...");
}else {
System.out.println("目录不存在...创建目录中....");
System.out.println("===============================");
if(file.mkdirs()){
System.out.println(fileName + ":该目录创建成功...");
}else {
System.out.println(fileName + ":该目录创建失败...");
}
}
}
}










