第一篇 IO流技术(一)
package com.zzp.demo; import java.io.File; public class PathDemo01 { public static void main(String[] args) { String path = "/IO/src/com/zzp/demo/4.JPG"; System.out.println(File.separatorChar); //第一种方式 使用“/” 一般使用第一种 path = "/IO/src/com/zzp/demo/4.JPG"; //第二种方式 使用File.separator 常量拼接 path = File.separator +"IO"+File.separator+"src"+ File.separator +"com"+File.separator+"zzp"+ File.separator +"demo"+File.separator+"4.JPG"; System.out.println(path); } }
File构造器
package com.zzp.demo; import java.io.File; /** * * file构造器 * @author java * */ public class FileDemo01 { public static void main(String[] args) { String path = "F:/workspace1/IO/src/com/zzp/demo/4.JPG"; //1、构建file对象 直接丢一个路径 File src = new File(path); System.out.println(src.length()); //2、构建file对象 父路径+子名称 File src01 = new File("F:/workspace1/IO/src/com/zzp/demo/","4.JPG"); System.out.println(src01.length()); //3、构建file对象 父对象+子名称 File src02 = new File(new File("F:/workspace1/IO/src/com/zzp/demo/"),"4.JPG"); System.out.println(src02.length()); } }
File相对路径和绝对路径的问题
package com.zzp.demo; import java.io.File; /** * * file相对路径和绝对路径的问题 * @author java * */ public class FileDemo02 { public static void main(String[] args) { //1、存在盘符,这就是绝对路径 直接放进path String path = "F:/workspace1/IO/src/com/zzp/demo/4.JPG"; File src = new File(path); System.out.println(src.getAbsolutePath()); //2、不存在盘符,就是相对路径 相对于当前目录 System.out.println(System.getProperty("user.dir")); src = new File("4.JPG"); System.out.println(src.getAbsolutePath()); //3、构建一个不存在的路径 src = new File("5.JPG"); System.out.println(src.getAbsolutePath()); } }
名称或路径
* getName() getPath()
* getAbsolutePath()
* getParent()
package com.zzp.demo; import java.io.File; /** * * 名称或路径 * getName() getPath() * getAbsolutePath() * getParent() * @author java * */ public class FileDemo03 { public static void main(String[] args) { //1、存在盘符,这就是绝对路径 直接放进path String path = "F:/workspace1/IO/src/com/zzp/demo/4.JPG"; File src = new File(path); System.out.println("名称:"+src.getName()); System.out.println("路径:"+src.getPath()); System.out.println("绝对路径:"+src.getAbsolutePath()); System.out.println("父路径:"+src.getParent()); System.out.println("父对象:"+src.getParentFile().getParent()); } }
文件的状态
* 1、存在 exists()
* 2、文件 isFile()
* 3、文件夹 isDirectory()
package com.zzp.demo; import java.io.File; /** * * 文件的状态 * 1、存在 exists() * 2、文件 isFile() * 3、文件夹 isDirectory() * @author java * */ public class FileDemo04 { public static void main(String[] args) { //1、存在盘符,这就是绝对路径 直接放进path String path = "F:/workspace1/IO/src/com/zzp/demo/4.JPG"; File src = new File(path); System.out.println("是否存在:"+src.exists()); System.out.println("是否是文件夹:"+src.isDirectory()); System.out.println("是否是文件:"+src.isFile()); //完整的文件状态 if(null == src || !src.exists()){ System.out.println("文件不存在"); }else{ if(src.isFile()){ System.out.println("文件操作"); }else{ System.out.println("文件夹操作"); } } } }
创建目录
* 1、mkdir() 确保上级目录存在,不存在创建失败
* mkdirs() 上级目录不存在,一同创建
package com.zzp.demo; import java.io.File; /** * * 创建目录 * 1、mkdir() 确保上级目录存在,不存在创建失败 * mkdirs() 上级目录不存在,一同创建 * * @author java * */ public class DirDemo01 { public static void main(String[] args) { File src = new File("F:/workspace1/IO/src/com/zzp/demo01"); boolean flag = src.mkdir(); System.out.println(flag); src = new File("F:/workspace1/IO/path"); boolean flag01 = src.mkdirs(); System.out.println(flag01); } }
列出下一级
* 1、list():列出下一级名称
* 2、listFiles():列出下一级对象
* 3、列出所有的根路径listRoots()
package com.zzp.demo; import java.io.File; /** * * 列出下一级 * 1、list():列出下一级名称 * 2、listFiles():列出下一级对象 * 3、列出所有的根路径listRoots() * @author java * */ public class DirDemo02 { public static void main(String[] args) { File src = new File("F:/workspace1/IO"); //列出下一级的名称 String[] subName = src.list(); for(String s : subName){ System.out.println(s); } System.out.println("--------------------------"); //列出下一级的文件对象 File[] listFiles = src.listFiles(); for (File file : listFiles) { System.out.println(file.getAbsolutePath()); } System.out.println("--------------------------"); File[] listRoots = src.listRoots(); for(File lr : listRoots){ System.out.println(lr.getAbsolutePath()); } } }
递归:方法自己调用自己
*递归头:何时结束递归
*递归体:重复调用
package com.zzp.demo; import java.io.File; /** * * 递归:方法自己调用自己 *递归头:何时结束递归 *递归体:重复调用 * @author java * */ public class DirDemo03 { public static void main(String[] args) { test(1); } public static void test(int i){ if(i > 10){ return; } System.out.println(i); test(i+1); } }