概述:
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 + ":该目录创建失败..."); } } } }