Java之文件IO流详解首卷

要须心地收汗马,孔孟行世目杲杲。这篇文章主要讲述Java之文件IO流详解首卷相关的知识,希望能为你提供帮助。
1.File类1.1File类概述和构造方法

  • File类介绍
  • 它是文件和目录路径名的抽象表示
  • 文件和目录是可以通过File封装成对象的
  • 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的
  • File类的构造方法


  • 示例代码
public class FileDemo01
public static void main(String[] args)
//File(String pathname):通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
File f1 = new File("E:\\\\yijizhichang\\\\java.txt");
System.out.println(f1);

//File(String parent, String child):从父路径名字符串和子路径名字符串创建新的 File实例。
File f2 = new File("E:\\\\yijizhichang","java.txt");
System.out.println(f2);

//File(File parent, String child):从父抽象路径名和子路径名字符串创建新的 File实例。
File f3 = new File("E:\\\\yijizhichang");
File f4 = new File(f3,"java.txt");
System.out.println(f4);



这是我的目录,大家在执行代码的时候将目录换成自己电脑上的,不过目录中最好全是英文,不能包含中文。
1.2File类创建功能
  • 方法分类

  • 示例代码
public class FileDemo02
public static void main(String[] args) throws IOException
//需求1:我要在E:\\\\yijizhichang目录下创建一个文件java.txt
File f1 = new File("E:\\\\yijizhichang\\\\java.txt");
System.out.println(f1.createNewFile());
System.out.println("--------");

//需求2:我要在E:\\\\yijizhichang目录下创建一个目录JavaSE
File f2 = new File("E:\\\\yijizhichang\\\\JavaSE");
System.out.println(f2.mkdir());
System.out.println("--------");

//需求3:我要在E:\\\\yijizhichang目录下创建一个多级目录JavaWEB\\\\html
File f3 = new File("E:\\\\yijizhichang\\\\JavaWEB\\\\HTML");
//System.out.println(f3.mkdir());
System.out.println(f3.mkdirs());
System.out.println("--------");

//需求4:我要在E:\\\\yijizhichang目录下创建一个文件javase.txt
File f4 = new File("E:\\\\yijizhichang\\\\javase.txt");
//System.out.println(f4.mkdir());
System.out.println(f4.createNewFile());



同理,大家也要把相关的目录换成自己的。
1.3File类判断和获取功能


  • 判断功能


  • 获取功能



  • 示例代码
public class FileDemo04
public static void main(String[] args)
//创建一个File对象
File f = new File("myFile\\\\java.txt");
System.out.println(f.isDirectory());
System.out.println(f.isFile());
System.out.println(f.exists());
System.out.println(f.getAbsolutePath());
System.out.println(f.getPath());
System.out.println(f.getName());
System.out.println("--------");
File f2 = new File("E:\\\\yijizhichang");

String[] strArray = f2.list();
for(String str : strArray)
System.out.println(str);

System.out.println("--------");

File[] fileArray = f2.listFiles();
for(File file : fileArray)
if(file.isFile())
System.out.println(file.getName());







1.4File类删除功能


  • 方法分类


  • 示例代码


public class FileDemo03
public static void main(String[] args) throws IOException
//需求1:在当前模块目录下创建java.txt文件
File f1 = new File("myFile\\\\java.txt");

//需求2:删除当前模块目录下的java.txt文件
System.out.println(f1.delete());
System.out.println("--------");

//需求3:在当前模块目录下创建yijizhichang目录
File f2 = new File("myFile\\\\yijizhichang");

//需求4:删除当前模块目录下的yijizhichang目录
System.out.println(f2.delete());
System.out.println("--------");

//需求5:在当前模块下创建一个目录yijizhichang,然后在该目录下创建一个文件java.txt
File f3 = new File("myFile\\\\yijizhichang");
File f4 = new File("myFile\\\\yijizhichang\\\\java.txt");

//需求6:删除当前模块下的目录yijizhichang
System.out.println(f4.delete());
System.out.println(f3.delete());





  • 绝对路径和相对路径的区别:
  • 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如:E:\\yijizhichang\\java.txt
  • 相对路径:必须使用取自其他路径名的信息进行解释。例如:myFile\\\\java.txt


2.递归【Java之文件IO流详解首卷】

2.1递归
  • 递归的介绍
  • 以编程的角度来看,递归指的是方法定义中调用方法本身的现象
  • 把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解
  • 递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算
  • 递归的基本使用
public class DiGuiDemo
public static void main(String[] args)
//回顾不死神兔问题,求第20个月兔子的对数
//每个月的兔子对数:1,1,2,3,5,8,...
int[] arr = new int[20];

arr[

    推荐阅读