File类

File:文件和目录路径名的抽象表示形式。即java中把文件或者目录都封装成File对象

代码练习1

import java.io.File;public class FileDemo1{public static void main(String[] args){//将路径封装成一个file对象File file = new File("/home/hadoop/javatest/wujiadong1.txt");System.out.println(file);}
}
---------------------------------------
输出结果
/home/hadoop/javatest/wujiadong1.txt
---------------------------------------

File类构造方法

代码练习2

import java.io.File;public class FileDemo1{public static void main(String[] args){//方式1File file1 = new File("/home/hadoop/javatest/wujiadong1.txt");//方式2File file2 = new File("/home/hadoop/javatest","wujiadong1.txt");//方式3File file3 = new File("/home/hadoop/javatest");File file4 = new File(file3,"wujiadong1.txt");System.out.println(file1);System.out.println(file2);System.out.println(file3);System.out.println(file4);}
}
-----------------------------------------------
输出结果
/home/hadoop/javatest/wujiadong1.txt
/home/hadoop/javatest/wujiadong1.txt
/home/hadoop/javatest
/home/hadoop/javatest/wujiadong1.txt
-----------------------------------------------------

创建功能

代码练习3

import java.io.File;
import java.io.IOException;public class FileDemo{public static void main(String[] args) throws IOException {//根据一个路径得到File对象File file = new File("/home/hadoop/a.txt");File file2 =new File("/home/hadoop","b.txt"); File file3 = new File("/home/hadoop");File file4 = new File(file3,"c.txt");File file5 = new File("/home/hadoop/aaa");File file6 = new File("/home/hadoop/bbb/ccc/ddd");  //创建文件System.out.println(file.createNewFile());   System.out.println(file2.createNewFile());System.out.println(file4.createNewFile());System.out.println(file5.mkdir());//创建一级目录System.out.println(file6.mkdirs());//创建多级目录}
}

删除功能

代码练习4

import java.io.File;
import java.io.IOException;public class FileDemo{public static void main(String[] args) throws IOException {//根据一个路径得到File对象File file = new File("/home/hadoop/a.txt");file.delete();//注意只能删除文件或单级目录}
}

重命名功能

代码练习5

import java.io.File;
import java.io.IOException;public class FileDemo{public static void main(String[] args) throws IOException {//根据一个路径得到File对象File file = new File("/home/hadoop/a.txt");file.createNewFile();File file1 = new File("/home/hadoop/wujiadong.txt");file.renameTo(file1);}
}

判断功能

代码练习6

import java.io.File;
import java.io.IOException;public class FileDemo{public static void main(String[] args) throws IOException {//根据一个路径得到File对象File file = new File("/home/hadoop/a.txt");file.createNewFile();File file1 = new File("/home/hadoop/wujiadong.txt");file.renameTo(file1);System.out.println("isDirectory:"+file1.isDirectory());System.out.println("isFile:"+file1.isFile());System.out.println("exists:"+file1.exists());System.out.println("canRead:"+file1.canRead());System.out.println("canWrite:"+file1.canWrite());System.out.println("isHidden:"+file1.isHidden());}
}
-----------------------------------
输出结果
isDirectory:false
isFile:true
exists:true
canRead:true
canWrite:true
isHidden:false
----------------------------------

获取功能

代码练习7

import java.io.File;
import java.io.IOException;public class FileDemo{public static void main(String[] args) throws IOException {//根据一个路径得到File对象File file = new File("/home/hadoop/a.txt");file.createNewFile();System.out.println("getAbsolutePath:"+file.getAbsolutePath());//绝对路径System.out.println("getPath:"+file.getPath());//相对路径System.out.println("getName:"+file.getName());//名称System.out.println("length:"+file.length());//大小System.out.println("lastModified:"+file.lastModified());//获取最后一次修改时间,毫秒值}
}
-------------------------------
输出结果
getAbsolutePath:/home/hadoop/a.txt
getPath:/home/hadoop/a.txt
getName:a.txt
length:0
lastModified:1480772014000
---------------------------------

高级获取功能(重点)

代码练习8

import java.io.File;public class FileDemo{public static void main(String[] args){//指定一个目录File file = new File("/home/hadoop/javatest");//public String[] list():获取指定目录下的所有文件夹的名称数组String[] strArray = file.list();//只列出文件名称for(String s:strArray){System.out.println(s);}System.out.println("---------");//public File[] listFiles():获取指定目录下的所有文件夹的File数组File[] fileArray = file.listFiles();//文件详细路径和名称for(File f:fileArray){System.out.println(f.getName());}}
}

练习:判断目录/home/hadoop下是否有后缀名为.txt的文件,如果有,就输出此文件名称

代码练习9

/** 判断目录/home/hadoop下是否有后缀名为.txt的文件,如果有,就输出此文件名称* 封装目录;遍历文件或目录;判断获取到的是否是文件;是否以.txt结尾 */import java.io.File;public class FileDemo1{public static void main(String[] args){File file = new File("/home/hadoop");//获取该目录下所有文件或者文件夹的File数组File[] fileArray = file.listFiles();for(File f:fileArray){//判断是否是文件if(f.isFile()){//判断是否以.txt结尾if(f.getName().endsWith(".txt")){System.out.println(f.getName());}   }}}
}-------------------------------------------------
输出结果
c.txt
b.txt
a.txt
wujiadong.txt
-----------------------------------------------

代码练习10
方法二(使用过滤器)

import java.io.File;
import java.io.FilenameFilter;public class FileDemo1{public static void main(String[] args){File file = new File("/home/hadoop");File[] fileArr = file.listFiles(new MyFileFilter());//传递过滤器for(File f:fileArr){System.out.println(f);}}
}//自定义类继承FilenameFilter过滤器接口
class MyFileFilter implements FilenameFilter{public boolean accept(File dir,String name){return name.endsWith(".txt");}
}

练习:获取/home/hadoop下的所有文件夹(过滤器)

import java.io.File;
import java.io.FileFilter;public class FileDemo1{public static void main(String[] args){File file = new File("/home/hadoop");File[] fileArr = file.listFiles(new FileFilterByDir());//获取指定目录下的文件夹for(File f:fileArr){System.out.println(f);}}
}class FileFilterByDir implements FileFilter{public boolean accept(File pathname){return pathname.isDirectory();}
}

FilenameFilter与FileFilter的比较

  • FilenameFilter过滤器中的accept方法接受两个参数,一个是当前文件夹或文件夹所在路径,一个是当期文件或文件夹对象的名称
  • FileFilter过滤器中的accept方法接受一个参数,这个参数是当期文件或文件夹对象
  • 当需过滤文件名称时使用FilenameFilter;当需对当前文件或文件夹进行过滤,就可以使用FileFilter

练习:批量修改文件名


练习:递归输出指定目录下所有以.java格式结尾的文件

代码练习10

import java.io.File;
public class FilePathDemo{public static void main(String[] args){//封装目录File srcFolder = new File("/home/hadoop/javatest");getAllFilePath(srcFolder);}//递归功能private static void getAllFilePath(File srcFolder){File[] fileArray = srcFolder.listFiles();           //遍历for(File file:fileArray){if(file.isDirectory()){getAllFilePath(file);   }else{if(file.getName().endsWith(".java")){System.out.println(file.getAbsolutePath());}}}}}

练习:递归删除带内容的目录

代码练习11

import java.io.File;public class FileDeleteDemo1{public static void main(String[] args){//封装目录File srcFolder = new File("/home/hadoop/javatest/test");deleteFolder(srcFolder);}private static void deleteFolder(File srcFolder){//获取所有文件或目录File[] fileArray = srcFolder.listFiles();//遍历for(File file:fileArray){if(file.isDirectory()){deleteFolder(file);}else{System.out.println("file.getName():"+file.delete());}}System.out.println("srcFolder.getName()"+srcFolder.delete());}}-------------------------------
这里需要注意的是fileArray不能等于null。
可以加入判断if(fileArray != null){}

递归:指在当前方法内调用自己的这种现象

public void show(){show();}

注意事项

  • 递归一定要有限制条件
  • 递归次数不能太多
  • 构造方法不能递归使用

转载于:https://www.cnblogs.com/wujiadong2014/p/6151798.html

java基础9(IO流)-File类相关推荐

  1. 【Java基础】· IO流习题详解

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  2. Java基础学习—— IO流

    Java基础学习-- IO流 1 文件 1.1 文件的创建 1.2 文件常用的方法 2 IO流 2.1 FileInputStream 2.2 FileOutputStream 2.3 文件的拷贝 2 ...

  3. 13-1 IO流 ---- File类的使用(2)常用方法

    13-1 IO流 ---- File类的使用(2)常用方法 一.File类的获取功能 public String getAbsolutePath():获取绝对路径 public String getP ...

  4. 09、IO流—File类与IO流

    文章目录 一.File类 基本认识 实用方法 获取功能 重命名功能(包含剪切) 判断功能 创建.删除文件 实际小案例 二.IO流 1.认识IO流 2.IO流基类介绍 字节流基类介绍 字符流基类介绍 三 ...

  5. Java基础之IO流(二)

    IO流(二) 标准输入输出流 System类中的字段:in out,它们代表了系统标准的输入和输出设备 System.in标准输入流,默认设备,键盘 System.out标准输出流,默认设备,屏幕 获 ...

  6. Java基础进阶IO流概述

    1.IO流,什么是IO? I : Input O : Output 通过IO可以完成硬盘文件的读和写. 2.IO流的分类? 有多种分类方式: 一种方式是按照流的方向进行分类: 以内存作为参照物 往内存 ...

  7. Java基础:IO流之File类

    1. File类概述 文件和目录路径名的抽象表示形式,表示一个文件或文件夹,并提供了一系列操作文件或文件夹的方法 2. 构造方法 方法 功能描述 File(String pathname) 根据路径得 ...

  8. Java的IO流---File类的使用

    File类的概述 java.io.File类 凡是与输入.输出相关的类.接口等都定义在java.io包下 File是一个类,可以有构造器创建其对象.此对象对应着一个文件或者文件目录 File类对象是与 ...

  9. Java IO流-File类

    2017-10-24 23:50:22 File类 File类:文件和目录路径名的抽象表示形式.该文件或者目录不一定真实存在. * 构造方法 File类有四种构造方法,主要采用的构造方法师第二种,也就 ...

  10. Java基础之IO流

    IO流用来处理设备间数据传输,java对数据的操作是通过流的方式,而这些操作流的对象被封装在IO包中.流可以分为字符流和字节流.字符流可以设置编码方式,这就使得处理文本更加方便. IO常用基类 字节流 ...

最新文章

  1. 区块链相关论文研读1- 关于边缘计算
  2. C#、C++、JAVA中虚函数和抽象函数的概念对比
  3. 自定义方法中英文字符截取
  4. 机器人彩铅画_彩铅画嗔
  5. 【bitset 技巧 分块】bzoj5087: polycomp
  6. 【WXS全局对象】Date
  7. linux yum libsasl2,CentOS8 yum 凡是安装 安装mysql +需要:libsasl2.so.2()(64bit)
  8. 全职写作过来人,给初学写作者的6条忠告
  9. 《企业IT架构转型之道》读书笔记
  10. 哲理故事300篇 下
  11. 以图搜图 图像匹配_百度识图:以图搜图找到相似图片原理分析
  12. STM32芯片无法正常工作的现象及原因分析集锦
  13. 支付宝飞行模式/转卡/转账/h5拉起支付
  14. Remove annoying AD window when PopKart exits
  15. 十年之前..., 十年之后...
  16. 【技巧】解决谷歌浏览器自带的谷歌翻译无法自动翻译问题
  17. (C++)计算三角形面积
  18. 美国西储大学滚动轴承实验数据
  19. 从阴阳五行,四书五经到国学的理解
  20. 依概率收敛和依分布收敛(附一道例题)

热门文章

  1. 在mysql的操作界面中,如何清屏幕
  2. MVVM模式下 触发器多条件判断
  3. ssh连接局域网内两台主机
  4. 在CMakeLists.txt文件中包含Eigen
  5. 《我的互联网方法论》读书笔记
  6. jupyter notebook matplotlib绘制动态图并显示在notebook中
  7. 查询系统linux命令,Linux系统下基本的帮助查询命令小结
  8. 建造者模式 php,PHP设计模式之建造者模式定义与用法简单示例
  9. php5 mysql 源_thinkphp6:访问多个mysql数据源(thinkphp6.0.5 / php 7.4.9)
  10. tomcat和idea都占用了8080_详解IDEA 启动tomcat 端口占用原因以及解决方法( 使用debug模式)...