File的使用(file的常用方法)

  本篇文章为你整理了File的使用(file的常用方法)的详细内容,包含有file类的使用 file的常用方法 file 用法 file类的作用 File的使用,希望能帮助你了解 File的使用。

   * 3.exists() 判断是否不存在

   * 4.getName() 获取文件名称【如果是文件就返回文件名+文件后缀】【如果是文件夹就返回文件名】

   * 5.getAbsolutePath() 获取文件的绝对路径

   * 6.getPath() 获取定义文件的路径【获取new File()这里的路径】

   * 7.length() 获取文件的大小【单位是字节,注意:不能获取文件夹的大小】

   * 8.lastModified 获取文件最后被修改的毫秒值

   * 接下来的是: File的创建以及删除方法:看FileMothods1

  public class FileMothods {

   public static void main(String[] args) {

   String str="C:\\Users\\Lucky\\Desktop\\测试文件夹";

   String child="cs.txt";

   System.out.println("----File(String str) 把字符串的路径信息转换成File对象----");

   File file1=new File(str);

   System.out.println(file1);

  
System.out.println("------------------------成员方法---------------------------");

   System.out.println(file1.isDirectory());

   System.out.println(file1.isFile());

   System.out.println(file1.exists());

   System.out.println();

   File val=new File("H:\\项目\\javaSE\\IO\\src\\com\\Lucky\\File\\test");

   System.out.println(val.getName());

   System.out.println(val.getAbsolutePath());

   System.out.println(val.getPath());

   System.out.println(val.lastModified()); //获取文件最后被修改的毫秒值

  
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy年MM月dd日");

   System.out.println(dateFormat.format(date));

  
* 1.createNewFile 创建一个新的文件

   * 【注意点:①创建的一定是文件②原来不存在返回true,否则false③如果父级路径不存在,会报IO异常】

   * 2.mkdir 创建一个新的文件夹

   * 【注意点:①创建的文件夹路径是唯一的②创建单个文件夹】

   * 3.mkdirs 创建一个/多个新的文件夹

   * 【注意点:①创建的文件夹路径是唯一的②创建一个/多个新的文件夹】

   * 4.delete 删除文件【或空文件夹】

  public class FileMothods1 {

   public static void main(String[] args) {

   File val=new File("H:\\项目\\javaSE\\IO\\src\\com\\Lucky\\File\\test");

   boolean delete = val.delete();

   /*只能删除文件【或空文件夹】*/

   System.out.println(delete);

  

 

 

  

package com.Lucky.File;

 

  import java.io.File;

  import java.io.FilenameFilter;

  import java.util.Arrays;

   * File的遍历: listFiles() 获取当前路径下的所有内容

  当调用者File表示的路径不存在时,返回null

  当调用者File表示的路径是文件时,返回null

  当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组

  当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回

  当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含

  当调用者File表示的路径是需要权限才能访问的文件夹时,返回null件

  public class FileMothods2 {

   public static void main(String[] args) {

   File file=new File("H:\\YunGameDownload\\leidian\\data");

   File[] files = file.listFiles();

   for (File file1 : files) {

   System.out.println(file1);

  
/////////////////////////////////////////////////////////////////////////

   System.out.println("----了解即可----");

   System.out.println("list");

   File file1=new File("H:\\YunGameDownload\\leidian\\data");

   String[] list = file1.list();

   System.out.println("获取当前路径下的所有内容【仅仅是名称】"+list); //返回的是数组

   //new FilenameFilter()文件过滤器

   String[] list1 = file1.list(new FilenameFilter() {

   dir: 表示父级路径

   name: 表示子级路径

   return: true代表保留,反之代表舍弃

   @Override

   public boolean accept(File dir, String name) {

   //过滤要求:是文件并且文件后缀是.txt

   File file2 = new File(dir, name);

   return file2.isFile() file2.getName().endsWith(".txt");

   System.out.println(Arrays.toString(list1)+"\n");

  
练习1要求: 查询所有盘符下的.jpg文件【存在Bug】

  练习2要求: 删除指定目录的所有内容【不操作,我怕删除掉我的小电影】

   注意点:{

   步骤:先进入文件夹,遍历文件夹,再判断文件夹里面的每一个内容

   如果“文件夹里面的内容”是文件就直接delete

   如果“文件夹里面的内容”又是一个文件夹,就再次调用【利用递归】

   -- 最后√如果是空文件夹就直接delete

  public class test {

   public static void main(String[] args) {

   findAll();

   public static void findAll(){

   //获取全部盘符

   File[] files = File.listRoots();

   for (File file : files) { // file== C D E F G

  // String string = file.toString();

  // string =string+"\\";

  // File valFile=new File(string);

   findALL(file);

   * 单个盘符的所有jpg文件

   * @param file

   public static void findALL(File file){

   File file1=new File("file");

   //1.进入文件夹

   File[] files = file1.listFiles();

   //2.遍历

   if(files!=null){

   for (File FI : files) {

   //3.判断[也是递归终止的条件]

   if(FI.isFile()){

   System.out.println(FI.getName().endsWith(".jpg"));

   }else {

   //不是文件,就重复调用该方法【递归】

   findALL(FI);

  

 

  

package com.Lucky.File;

 

  import java.io.File;

  练习3要求:查询指定路径下的总大小

  public class test1 {

   public static void main(String[] args) {

   File file=new File("H:\\YunGameDownload\\leidian\\data");

   System.out.println(findCount(file)); //单位是字节

  
public static void main(String[] args) {

   File fi=new File("H:\\YunGameDownload\\leidian");

   //调用方法

   HashMap String, Integer map = anyFileCount(fi);

   Set String strings = map.keySet();

   for (String string : strings) {

   //获取值

   Integer integer = map.get(string);

   System.out.println(string+":"+integer);

   public static HashMap String,Integer anyFileCount(File file){

   //1.定义Map集合

   HashMap String,Integer map=new HashMap ();

   //2.进入文件夹

   File[] files = file.listFiles();

   //3.遍历

   for (File file1 : files) {

   //4.判断是不是文件。

   if(file1.isFile()){

   // 5.是文件获取文件名【文件名包括后缀】

   String fileName = file1.getName();

   String[] splitName = fileName.split("\\.");//这个符号要进行转义

   //6.判断splitName的长度是否 =2【排除那些没有后缀的文件】

   if(splitName.length =2){

   //7.获取后缀

   int Intval= splitName.length-1;

   String val=splitName[Intval];

   //8.判断map集合中是否存在该后缀

   if(map.containsKey(val)){

   //9.存在就获取map集合中该键的值【数量】

   Integer integer = map.get(val);

   integer++;

   //10.将添加的数量添加到map集合中

   map.put(val,integer);

   }else {

   //不存在就直接添加数据

   map.put(val,1);

   }else {

   //不是文件【就是文件夹】使用递归

   注意点:将递归的数据也要添加到map集合中

   HashMap String,Integer chileCount=anyFileCount(file1);

   //遍历chileCount集合

   Set Map.Entry String, Integer entries = chileCount.entrySet();

   for (Map.Entry String, Integer entry : entries) {

   String key = entry.getKey();

   int val = entry.getValue();

   //判断map集合中是否存在该后缀

   if(map.containsKey(key)){

   //9.存在就获取map集合中该键的值【数量】

   Integer integer = map.get(key);

   integer=integer+val;

   //10.将添加的数量添加到map集合中

   map.put(key,integer);

   }else {

   //不存在就直接添加chileCount集合的数据

   map.put(key,val);

   //11.返回集合

   return map;

  

 

   拓展:File的构造方法

  

package com.Lucky.File;

 

  import java.io.File;

   * File类的构造器方法讲解:

   * File(String str) 把字符串的路径信息转换成File对象

   * File(String parent,String Child) 将父级路径字符串与子路径字符串拼接成File对象

   * File(File parent,String Child) 将父级路径与子路径字符串拼接成File对象

   * 每天一个小知识:

   * File对象可以表示为文件/路径/文件夹【可以允许File不存在】

   * 绝对路径是指带有盘符的路径信息

   * 相对路径是根据当前项目找的路径

  public class flieConstructor {

   public static void main(String[] args) {

   String str="C:\\Users\\Lucky\\Desktop\\测试文件夹"; //不存在的

   String child="cs.txt"; //不存在的

   System.out.println("----File(String str) 把字符串的路径信息转换成File对象----");

   File file1=new File(str);

   System.out.println(file1);

   System.out.println("----File(String parent,String Child) 将父级路径字符串与子路径字符串拼接成File对象----");

   File file2=new File(str,child);

   System.out.println(file2);

   System.out.println("----File(File parent,String Child) 将父级路径与子路径字符串拼接成File对象----");

   File file3=new File(file1,child);

   System.out.println(file3);

  以上就是File的使用(file的常用方法)的详细内容,想要了解更多 File的使用的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: