IO流(File类)

本文介绍了Java IO流的基本概念,包括输入流、输出流及其分类(字节流和字符流),重点讲解了File类的构造方法、常用操作和递归复制文件夹实例。通过学习,读者将掌握如何创建、管理文件及目录,并进行文件内容的访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,前言

开始学习IO流,了解IO流的概念,掌握File类。。

二, IO流的概念

Java 的 IO 流主要包括输入、输出两种 IO 流。

  • 输入:读取数据到内存中。

  • 输出:将内存数据输出外部中。

每种输入、输出流有可分为字节流和字符流两大类:

  • 字节流以字节为单位来处理输入、输出操作。

  • 字符流以字符为单位来处理输入、输出操作。

三,File类的概念

Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。

File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。

四,File类的构造方法

 //通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。
 File(String pathname) 
 ​
 //根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
 File(String parent, String child)    
 ​
 //通过将给定的 file: URI 转换成一个抽象路径名来创建一个新的 File 实例。
 File(URI uri) 

五,File类的常用方法

 //创建方法
 boolean createNewFile():
     创建文件(当文件不存在时)
 boolean mkdir():
     创建一级目录
 boolean mkdirs():
     创建多级目录
 ​
 //删除方法
 boolean delete():
     删除文件或目录。
 ​
 //测试方法
 boolean exists():
     测试文件或目录是否存在。
 boolean isDirectory():
     测试文件是否为目录。
 boolean isFile():
     测试文件是否为普通文件。
 ​
 //查询方法
 String  getAbsolutePath():
     返回绝对路径名字符串。
 String  getParent():
     返回上级绝对路径。
 ​
 //转换方法
 String[]    list():
     返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
 File[]  listFiles():
     返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
 ​
 //其他方法
 String  getName():
     返回由此抽象路径名表示的文件或目录的名称。
 long    length():
     返回由此抽象路径名表示的文件的长度。

六,递归方法

使用递归方法制一个多级文件夹到一个指定的目录下:

 public class Test02 {
     
     /*
      * 复制一个多级文件夹到一个指定的目录下
      */
     
     public static void fz(String pathname,String path) throws IOException { 
         //定位文件
         File file = new File(pathname);
         //如果不存在
         if (file.exists() == false) {
             throw new IOException("源文件不存在");
                 }
         //展示当下文件夹各文件名
         String str[] = file.list();
         //循环输出
         for (String string : str) {
             //定位当下新文件   
             File f = new File(pathname+"/"+string);
             //如果是文件夹
             if (f.isDirectory()) {  
                 //创建复制处文件夹
                 File newf = new File(path + "/" + string);
                 newf.mkdir();
                 //递归文件夹下的文件,重复操作
                 fz(pathname+"/"+string, path + "/" + string);
             //如果是文件    
             }else { 
                 //创建复制处文件
                 File newf = new File(path + "/" + string);
                 newf.createNewFile();       
             
             }   
             
         }       
     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值