• java I/O相关;File类;递归删除文件或文件夹


    I/O相关 输入/输出 流(数据流动)

    数据流动的方向  读数据(输入input)  写数据(输出 output)

    文件流  字符流  数据流 对象流  网络流

    1.什么叫文件?

      一种电脑的存储形式

      文件有不同的格式 .txt  .doc  .ppt  .mp4  .jpg  .rar

      文件夹?--目录路径

      File-->与电脑上的文件或文件夹产生一 一对应的映射关系

      1.File是一个类 java.io包中  可以表示 文件或目录路径名;

      2.File与真实硬盘中的文件或文件夹 不是一个东西

        File是在内存中的一个对象  ---映射 --硬盘

      3.File类中的常用的方法

    canRead() canWrite() isHidden() isDirectory()  //基本属性

    length()  lastModified() 

    getAbsolutePath();//绝对路径  getName();

    getName();

    * createNewFile() //创建新的文件

    * mkdir() //创建新的文件夹 外层没有 不能创建 //一层

    * mkdirs(); //创建新的文件夹 外层没有 可以自动创建 //多层

    String a=getParent() //获取当前file的父亲file名字

    * File a=getParentFile()  //获取当前file的父亲file对象

    * String[] a=list() //获取当前file的所有儿子名字

    * File[] a=listFiles() //获取当前file的所有儿子对象

    * boolean a=delete() //删除文件空的文件夹 不能删除带元素的文件夹

    绝对路径<--->相对路径

    绝对路径可以通过完整的字符串 定位盘符 文件夹 文件

    相对路径没有盘符的写法  当前(java)项目所在的位置找寻(作为根目录)

    1.文件夹的遍历--需要一个递归(有限次数的调自己的方法);  

    2.文件夹的删除;--递归

    3.文件夹的路径(找父目录);

    4.文件的复制; --文件流来完成 读取文件内容 将内容写入文件;

    5.文件的加密;--文件流

    6.文件夹的复制;

    import java.io.File;
    import java.util.*;
    import java.text.*;
    public class TestMain{		
    	public static void main(String[] args){			
    		//File f=new File("D://java//object//Test0528.txt");
    		File f=new File("D:\java\object\Test0528.txt");
    		System.out.println(f.canExecute());
    		System.out.println(f.canRead());
    		System.out.println(f.canWrite());
    		System.out.println(f.isHidden());
    		System.out.println(f.isFile());//文件
    		System.out.println(f.isDirectory());//目录
    		System.out.println(f.length());
    		System.out.println(f.lastModified());
    		Date date=new Date(f.lastModified());
    		SimpleDateFormat sdate=new SimpleDateFormat("yyyy-MM-dd KK:mm:ss");
    		System.out.println(sdate.format(date));	
    		System.out.println(f.getAbsolutePath());
    		System.out.println(f.getName());
    	}
    }
    
    import java.io.*;
    public class TestMain{		
    	public static void main(String[] args){		
    		File k=new File("D:\java\object\bbb\ccc");
    		System.out.println(k.mkdir());//无编译时异常//若bbb不存在,则创建不了
    		System.out.println(k.mkdirs());////若bbb不存在,可以创建成功;
    	
    		//File f=new File("D:\java\object\abc.txt");	
    		File f=new File("D:\java\object\abc");
    		try{
    			boolean v=f.createNewFile();//编译时异常
    			System.out.println(v);
    		}catch(IOException e){
    			e.printStackTrace();
    			
    		}//创建文件;
    		
    	}
    }
    
    import java.io.*;
    public class TestMain{		
    	public static void main(String[] args){		
    		File f=new File("D:\java\object\Test0528.txt");
    		String pn=f.getParent();
    		System.out.println(pn);
    		File pf=f.getParentFile();
    		System.out.println(pf.getAbsolutePath());
    		while(pf!=null){//遍历当前文件的父目录
    			System.out.println(pf.getAbsolutePath());
    			pf=pf.getParentFile();//再找一遍;
    		}
    		
    	}
    }
    
    import java.io.*;
    public class TestMain{		
    	public static void main(String[] args){		
    		File f=new File("D:\java\object\bbb\ccc");//
    		File[] fs=f.listFiles();//数组对象为空 证明当前的f是文件;
    				    //数组对象不为为空   证明当前的f是一个文件夹
    		System.out.println(fs);
    		System.out.println(fs.length);//数组对象的长度不为0  证明当前的f是一个不为空的文件夹
    		//递归算法--遍历文件夹;
    		boolean v=f.delete();//删掉文件或空文件夹 //回收站无法找回
    		System.out.println(v);
    		
    	}
    }
    

      递归相关;

    public class TestMain{	
    	public void testOne(){
    		this.testTwo();
    		System.out.println("1");
    	}
    	public void testTwo(){
    		this.testThree();
    		System.out.println("2");
    	}
    	public void testThree(){
    		System.out.println("3");
    	}
    	public static void main(String[] args){		
    		TestMain a=new TestMain();
    		a.testOne();//3 2 2 //类似递归思想
    	}
    }
    

     

    import java.io.*;
    public class TestMain{
    	public void build(File a){//
    	
    		System.out.println(a.getAbsolutePath());//显示文件或文件夹查找的顺序;	
    		File[] f=a.listFiles();
    		if(f!=null && f.length>0){
    			//for(int i=0;i<f.length;i++){
    				//this.build(f[i]);
    			//}
    			for(File v:f){
    				this.build(v);
    			}
    		}
    		//System.out.println(a.getAbsolutePath());//显示文件或文件夹删除的顺序;	
    		a.delete();
    					
    	}
    	public static void main(String[] args){
    		TestMain x=new TestMain();
    		File f=new File("D:\sc");//D:\bbb 或D:\test.txt		
    		x.build(f);
    	}
    }
    

      

    2.什么叫文件流?

      读取文件中的内容    向文件中写内容

      文件输入流       文件输出流

      字节型文件输入流    字节型文件输出流

      字符型文件输入流    字符型文件输出流

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    55_Go基础_1_22 map 基本用法
    59_Go基础_1_26 字符串
    56_Go基础_1_23 map的遍历与排序
    52_Go基础_1_19 切片的再扩容
    数据类型和Json格式
    MySQL 存储过程的三个例子
    struts整合spring
    Android动态操作RelativeLayout里面的Button
    windows环境变量的初步研究
    struts2源码分析StrutsPrepareAndExecuteFilter
  • 原文地址:https://www.cnblogs.com/canglongdao/p/12984479.html
Copyright © 2020-2023  润新知