首页 > 编程语言 > 详细

Java_文件IO(尚未完)

时间:2020-03-16 21:52:08      阅读:70      评论:0      收藏:0      [点我收藏+]

Java文件独写 IOTest

参考:https://blog.csdn.net/wenzhi20102321/article/details/52582705
问题一:在电脑D盘下创建一个文件为HelloWorld.txt文件,判断他是文件还是目录,在创建一个目
录IOTest,之后将HelloWorld.txt移动到IOTest目录下去;之后遍历IOTest这个目录下的文

/**

 * @author LvGJ

 * 1. 首先遇到的第一个问题:我的电脑只有C盘,但是C盘根目录不允许创建,所以需要换地方,我选择了其他位置,地址需要进行更改,注意使用双斜杠\\!

 * 2. 使用New File(textName)时,也会创建文件,创建文件的位置是这个项目的根目录,比如我的这个Java_IOTest项目在WorkPlace里面,那么我的Hello文件就在Workplace/Java_IOTest/里面

 * 3. renameTo(File)的使用

 * 4. 对于目录可以使用file.list()返回一个String[] 遍历得到目录

 * 5. 判断文件使用isFile(),目录使用isDirectory()

 * 6. 创建目录使用mkdirs();
      */
      public class Pratice1 {
      public static void main(String[] args) {
      //创建文件
      File file = new File("C:\\Users\\LvGJ\\Workspaces\\MyEclipse 2016","HelloWorld.txt");
      //Test 根目录
      File file22 = new File("Hello.txt");
      boolean isCreate;
      try{
        isCreate = file.createNewFile();
        if(isCreate){
            System.out.println("创建文件成功!");
        }else{
            System.out.println("创建文件失败!文件已经存在!");
        }
      }catch(IOException e){
        System.out.println("创建文件失败!");
      }

      if(file.isFile()){
        System.out.println("这是一个文件!");
      }else{
        System.out.println("这是一个目录");
      }

      File file2 = new File("C:\\Users\\LvGJ\\Workspaces\\MyEclipse 2016\\IOTest");
      file2.mkdirs();
      /**

       * File进行移动使用renameTo(File)里面是File类,
       * 并且包括了该文件的名字
         */
         File file3 = new File(file2.getPath()+"\\"+file.getName());
         //进行移动
         if(file.renameTo(file3)){
         System.out.println("文件移动成功!"+file.getAbsolutePath());
         }else{
         System.out.println("文件移动失败");
         }

      //遍历IOTest目录下的文件
      String[] arr = file2.list();
      for(String s:arr){
        System.out.println(s);
      }

   }
   }

问题二:递归实现输入任意目录,列出文件以及文件夹

  • 工具类
package FileUtile;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * 
 * @author LvGJ
 *  这是一个工具类,这个工具类通过属于一个目录,然后输出这个目录下的所有东西,
 *  如果这个目录下面还有目录,那么再次输出这个目录下的东西以此类推。
 */
public class FileUtile {
    /*
     * 首先需要一个类方法(static),那么就可以直接FileUtile.name调用方法了
     */
    public static List getAllFiles(String dir){
        List<File> files = new ArrayList<File>();
        File file = new File(dir);
        //判断存在且为目录
        if(file.exists()&&file.isDirectory()){
            helper(file,files);
        }
        return files;
    }
    
    private static void helper(File file,List<File> files){
        File[] fileArr = file.listFiles();
        //遍历一遍,如果有目录继续递归
        for(File f:fileArr){
            files.add(f);
            if(f.isDirectory())
                helper(f,files);
        }
    }
}
  • 主类
package Test;
import java.io.File;
import java.util.List;

import FileUtile.*;
/**
 * 
 * @author LvGJ
 *  这是主类,用于调用工具类中的方法。
 *  **注意导包**
 */
public class Pratice2 {
    public static void main(String[] args) {
        List<File> list = FileUtile.getAllFiles("C:\\Users\\LvGJ\\Workspaces\\MyEclipse 2016\\Java_IOTest");
        for(File f:list){
            System.out.println(f.getName());
        }
    }
}
  • 效果截图

技术分享图片

Java_文件IO(尚未完)

原文:https://www.cnblogs.com/lvgj/p/12506891.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!