java基础9(IO流)-File类
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类相关推荐
- 【Java基础】· IO流习题详解
写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...
- Java基础学习—— IO流
Java基础学习-- IO流 1 文件 1.1 文件的创建 1.2 文件常用的方法 2 IO流 2.1 FileInputStream 2.2 FileOutputStream 2.3 文件的拷贝 2 ...
- 13-1 IO流 ---- File类的使用(2)常用方法
13-1 IO流 ---- File类的使用(2)常用方法 一.File类的获取功能 public String getAbsolutePath():获取绝对路径 public String getP ...
- 09、IO流—File类与IO流
文章目录 一.File类 基本认识 实用方法 获取功能 重命名功能(包含剪切) 判断功能 创建.删除文件 实际小案例 二.IO流 1.认识IO流 2.IO流基类介绍 字节流基类介绍 字符流基类介绍 三 ...
- Java基础之IO流(二)
IO流(二) 标准输入输出流 System类中的字段:in out,它们代表了系统标准的输入和输出设备 System.in标准输入流,默认设备,键盘 System.out标准输出流,默认设备,屏幕 获 ...
- Java基础进阶IO流概述
1.IO流,什么是IO? I : Input O : Output 通过IO可以完成硬盘文件的读和写. 2.IO流的分类? 有多种分类方式: 一种方式是按照流的方向进行分类: 以内存作为参照物 往内存 ...
- Java基础:IO流之File类
1. File类概述 文件和目录路径名的抽象表示形式,表示一个文件或文件夹,并提供了一系列操作文件或文件夹的方法 2. 构造方法 方法 功能描述 File(String pathname) 根据路径得 ...
- Java的IO流---File类的使用
File类的概述 java.io.File类 凡是与输入.输出相关的类.接口等都定义在java.io包下 File是一个类,可以有构造器创建其对象.此对象对应着一个文件或者文件目录 File类对象是与 ...
- Java IO流-File类
2017-10-24 23:50:22 File类 File类:文件和目录路径名的抽象表示形式.该文件或者目录不一定真实存在. * 构造方法 File类有四种构造方法,主要采用的构造方法师第二种,也就 ...
- Java基础之IO流
IO流用来处理设备间数据传输,java对数据的操作是通过流的方式,而这些操作流的对象被封装在IO包中.流可以分为字符流和字节流.字符流可以设置编码方式,这就使得处理文本更加方便. IO常用基类 字节流 ...
最新文章
- 区块链相关论文研读1- 关于边缘计算
- C#、C++、JAVA中虚函数和抽象函数的概念对比
- 自定义方法中英文字符截取
- 机器人彩铅画_彩铅画嗔
- 【bitset 技巧 分块】bzoj5087: polycomp
- 【WXS全局对象】Date
- linux yum libsasl2,CentOS8 yum 凡是安装 安装mysql +需要:libsasl2.so.2()(64bit)
- 全职写作过来人,给初学写作者的6条忠告
- 《企业IT架构转型之道》读书笔记
- 哲理故事300篇 下
- 以图搜图 图像匹配_百度识图:以图搜图找到相似图片原理分析
- STM32芯片无法正常工作的现象及原因分析集锦
- 支付宝飞行模式/转卡/转账/h5拉起支付
- Remove annoying AD window when PopKart exits
- 十年之前..., 十年之后...
- 【技巧】解决谷歌浏览器自带的谷歌翻译无法自动翻译问题
- (C++)计算三角形面积
- 美国西储大学滚动轴承实验数据
- 从阴阳五行,四书五经到国学的理解
- 依概率收敛和依分布收敛(附一道例题)
热门文章
- 在mysql的操作界面中,如何清屏幕
- MVVM模式下 触发器多条件判断
- ssh连接局域网内两台主机
- 在CMakeLists.txt文件中包含Eigen
- 《我的互联网方法论》读书笔记
- jupyter notebook matplotlib绘制动态图并显示在notebook中
- 查询系统linux命令,Linux系统下基本的帮助查询命令小结
- 建造者模式 php,PHP设计模式之建造者模式定义与用法简单示例
- php5 mysql 源_thinkphp6:访问多个mysql数据源(thinkphp6.0.5 / php 7.4.9)
- tomcat和idea都占用了8080_详解IDEA 启动tomcat 端口占用原因以及解决方法( 使用debug模式)...