(40)Java学习笔记——IO流技术 / File类
2017-02-16 12:12
381 查看
类 File
文件和目录路径名的抽象表示形式。构造方法:
public File(String pathname) //根据一个路径得到File对象
public File(String parent, String child) //根据一个目录和一个子文件(子目录)得到File对象
public File(File parent , String child) //根据一个父File对象 和 一个子文件(子目录)得到File对象
范例:
package cn.itcast_01; import java.io.File; /* * File 类 * 构造方法: public File(String pathname) //根据一个路径得到File对象 public File(String parent, String child) //根据一个目录和一个子文件(子目录)得到File对象 public File(File parent , String child) //根据一个父File对象 和 一个子文件(子目录)得到File对象 */ public class FileDemo { public static void main(String[] args) { //public File(String pathname) //根据一个路径得到File对象 File file = new File("D:\\demo\\a.txt"); //只是一个抽象的指向对象(不负责创建等其他功能) //public File(String parent, String child) //根据一个目录和一个子文件(子目录)得到File对象 File file2 = new File("D:\\demo","a.txt"); //public File(File parent , String child) //根据一个父File对象 和 一个子文件(子目录)得到File对象 File file3 = new File("E:\\demo"); File file4 = new File(file3,"a.txt"); //以上三种方式效果一样 } }
成员方法:
创建功能:
public boolean createNewFile() //创建一个新文件,如果存在就不创建了
public boolean mkdir() // 创建一个文件夹,如果存在就不创建了
public boolean mkdirs() // 创建一个文件夹,并创建不存在的父文件夹
注意:如果创建文件或文件夹没有写盘符路径,就会默认在项目路径下。
删除功能:
public boolean delete() //
注意:要删除一个文件夹,该文件夹内不能包含文件或者文件夹
重命名功能
public boolean renameTo(File dest)
注意:如果路径名相同,就是改名
如果路径名不同,就是改名并剪切。
范例:
package cn.itcast_02; import java.io.File; import java.io.IOException; /* * File * 创建功能: public boolean createNewFile() //创建一个新文件 public boolean mkdir() // 创建一个文件夹 public boolean mkdirs() // 创建一个文件夹,并创建不存在的父文件夹 删除功能: public boolean delete() 重命名功能 public boolean renameTo(File dest) */ public class FileDemo { public static void main(String[] args) throws IOException { //这里会需要抛出异常 //需求:在G盘JavaWorkPlace目录下创建一个文件夹demo //public boolean mkdir() // 创建一个文件夹 File file = new File ("G:\\JavaWorkPlace\\demo"); System.out.println("mkdir:"+file.mkdir()); //需求:在G盘JavaWorkPlace目录下创建一个a.txt文件 //public boolean createNewFile() //创建一个新文件 File file2 = new File("G:\\JavaWorkPlace\\demo\\a.txt"); System.out.println(file2.createNewFile()); //这里会需要抛出异常 //需求:在G盘JavaWorkPlace目录下test目录下创建一个文件b.txt File file3 = new File("G:\\JavaWorkPlace\\test"); System.out.println(file3.mkdir()); File file4 = new File("G:\\JavaWorkPlace\\test\\b.txt"); System.out.println(file4.createNewFile()); //需求:在G盘JavaWorkPlace目录下test2目录下创建aaa目录 File file5 = new File("g:\\JavaWorkPlace\\test2\\aaa"); System.out.println(file5.mkdirs()); //需求:删除G盘JavaWorkPlace目录下test目录下创建一个文件b.txt File file6 = new File("G:\\JavaWorkPlace\\test\\b.txt"); System.out.println(file6.delete()); //需求:重命名G盘JavaWorkPlace目录下test2目录下aaa目录成bbb File newFile = new File("g:\\JavaWorkPlace\\test2\\bbb"); //注意,要先指向位置 System.out.println(file5.renameTo(newFile)); } }
判断功能:
public boolean isDirectory() //判断是否是文件夹
public boolean isFile() //判断是否是文件
public boolean exists() //判断是否存在
public boolean canRead() //判断是否可读
public boolean canWrite() //判断是否可写
public boolean isHidden() //判断是否隐藏
范例:
package cn.itcast_03; import java.io.File; /* * 判断功能: public boolean isDirectory() //判断是否是文件夹 public boolean isFile() //判断是否是文件 public boolean exists() //判断是否存在 public boolean canRead() //判断是否可读 public boolean canWrite() //判断是否可写 public boolean isHidden() //判断是否隐藏 */ public class FileBooleanDemo { public static void main(String[] args) { //创建文件对象 File file = new File("a.txt"); //public boolean isDirectory() //判断是否是文件夹 System.out.println(file.isDirectory()); //false System.out.println(file.isFile()); //true } }获取功能:
基本获取功能:
public String getAbsoluePath() //获取绝对路径
public String getPath() //获取相对路径
public String getName() //获取名称
public long length() //获取长度。字节数
public long lastModified() //获取最后一次的修改时间,返回毫秒值
范例:
package cn.itcast_04; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; /* * 获取功能: 基本获取功能: public String getAbsoluePath() //获取绝对路径 public String getPath() //获取相对路径 public String getName() //获取名称 public long length() //获取长度。字节数 public long lastModified() //获取最后一次的修改时间,返回毫秒值 */ public class FileGetDemo { public static void main(String[] args) { //创建文件对象 File file = new File("demo\\test.txt"); //public String getAbsoluePath() //获取绝对路径 System.out.println(file.getAbsolutePath()); //G:\JavaWorkPlace\page40_File\demo\test.txt //public String getPath() //获取相对路径 System.out.println(file.getPath()); //demo\test.txt //public String getName() //获取名称 System.out.println(file.getName()); //test.txt //public long length() //获取长度。字节数 System.out.println(file.length()); //5 //public long lastModified() //获取最后一次的修改时间,返回毫秒值 System.out.println(file.lastModified()); //1487229623508 //解析时间 Date d = new Date(1487229623508L); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String s = sdf.format(d); System.out.println(s); //2017-02-16 15:20:23 } }
高级获取功能:
public String[ ] list() //返回一个字符串数组,获取指定目录下的所有文件或者文件夹名称数组。
public File[ ] listFiles()//返回一个抽象路径名数组,获取指定目录下的所有文件或者文件夹的File数组
范例:
package cn.itcast_04; import java.io.File; /* * public String[ ] list() //返回一个字符串数组,获取指定目录下的所有文件或者文件夹名称数组。 public File[ ] listFiles()//返回一个抽象路径名数组,获取指定目录下的所有文件或者文件夹的File数组 */ public class FileGetDemo02 { public static void main(String[] args) { //指定一个目录 File file = new File("g:\\"); // * public String[ ] list() //返回一个字符串数组,获取指定目录下的所有文件或者文件夹名称数组。 String[] array = file.list(); for(String s : array){ System.out.println(s); } /* 返回结果: $RECYCLE.BIN JavaWorkPlace SteamLibrary System Volume Information Virtual Machines VXdata 筑翎工作*/ //public File[ ] listFiles()//返回一个抽象路径名数组,获取指定目录下的所有文件或者文件夹的File数组 File[] fileArray = file.listFiles(); for(File s : fileArray){ System.out.println(s); } /* 返回结果: g:\$RECYCLE.BIN g:\JavaWorkPlace g:\SteamLibrary g:\System Volume Information g:\Virtual Machines g:\VXdata g:\筑翎工作*/ } }
练习:判断G盘目录下是否有后缀名为.jpg的文件,如果有,就输出次文件名称
方式思路一:先获取所有的,然后遍历的时候,依次判断,如果满足条件就输出
package cn.itcast_05; import java.io.File; /* * 练习:判断G盘目录下是否有后缀名为.jpg的文件,如果有,就输出次文件名称 * 思路: * A / 封装G判断目录 * B / 获取该目录下所有文件或者文件家的File数组 * C / 遍历该数组,得到每一个File对象, * D / 是否是文件 * 是:继续判断是否以.jpg结尾 * 是:输出该文件 * 否:不搭理 * 否:不搭理 */ public class FileTest_01 { public static void main(String[] args) { //创建文件对象 File file = new File("g:\\"); //获取该目录下所有文件或者文件家的File数组 File[] fileArray = file.listFiles(); //遍历该数组,得到每一个File对象, for (File f : fileArray){ //判断是不是文件 if(f.isFile()){ //判断是不是.jpg结尾 if (f.getName().endsWith(".jpg")){ //输出该文件名称 System.out.println(f.getName()); } } } } } 方式思路二:获取的收就已经满足条件了,然后输出 使用文件过滤器接口 FilenameFilter
public String[] list(FilenameFilter filter) public File[] listFiles(FilenameFilter filter) 范例:package cn.itcast_05; import java.io.File; import java.io.FilenameFilter; /* * 练习:判断G盘目录下是否有后缀名为.jpg的文件,如果有,就输出次文件名称 * 用接口FilenameFilter public String[] list(FilenameFilter filter) public File[] listFiles(FilenameFilter filter) * 思路: * A / 封装G判断目录 * B / 获取该目录下所有文件或者文件家的File数组 * C / 遍历该数组,得到每一个File对象, * D / 是否是文件 * 是:继续判断是否以.jpg结尾 * 是:输出该文件 * 否:不搭理 * 否:不搭理 */ public class FileTest_3 { public static void main(String[] args) { //创建文件对象 File file = new File("g:\\"); //获取该目录下所有文件或者文件夹的String数组 String[] strArray = file.list(new FilenameFilter(){ @Override public boolean accept(File dir, String name) { //accept是实现类 //在这个位置进行条件判断 File file = new File(dir,name); boolean flag = file.isFile(); boolean flag2 = name.endsWith(".jpg"); return flag && flag2; } }); //遍历 for(String s: strArray){ System.out.println(s); } } }练习02:package cn.itcast_06; import java.io.File; /* * 批量修改文件名称 * F:\IDM\MySQL * 需求:把这个下面的视频名称修改为00?_介绍.wmv * 思路: * A / 封装目录 * B / 遍历该File数组,得到每一个File对象 * C / 拼接一个新名称,然后重命名 */ public class FileTest_01 { public static void main(String[] args) { //封装目录 File srcFolder = new File("F:\\IDM\\MySQL"); //获取该目录下文件的File数组 File[] fileArray = srcFolder.listFiles(); //遍历该File数组,得到每一个File对象 for (File file : fileArray){ //F:\IDM\MySQL\三通it学院-www.santongit.com-050-动力节点-MYSQL视频-练习题.wmv //改后:F:\IDM\MySQL\050-动力节点-MYSQL视频-练习题.wmv String name = file.getName(); int startIndex = name.indexOf("0"); String newName = name.substring(startIndex); System.out.println(newName); File newFile = new File(srcFolder,newName); //重名即可 file.renameTo(newFile); } } }
相关文章推荐
- Java开发学习笔记之一:JavaEE分层及客户层技术
- JAVA 核心技术卷1学习笔记(1)
- 黑马程序员 java学习笔记2-IO流
- java IO流学习笔记三
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(二)
- Java2核心技术学习笔记 分类: java 2009-11-29 23:54 339人阅读 评论(0) 收藏
- 黑马程序员 java学习笔记3-IO流之字节流与装饰设计模式
- 高手Java核心技术学习笔记
- 黑马程序员_毕向东_Java基础视频教程第十八天-IO流---学习笔记
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(四):
- Java6学习笔记40——JAVA中的正则表达
- JAVA核心技术学习笔记(第七版,Ⅱ高级特性)
- 黑马程序员 java学习笔记4-Io流学习后可能会用到的实例
- Java2核心技术第七版的学习笔记(二):.The Java Programming Environment(Java的环境)
- Hibernate学习笔记---1.java对象持久化技术
- JAVA核心技术学习笔记(第七版,Ⅱ高级特性之集合)
- Java 技术是什么? 学习笔记
- java IO流学习笔记三
- 高手Java核心技术学习笔记
- 高手Java核心技术学习笔记