• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LvGJ
沉迷学习不秃头
博客园    首页    新随笔    联系   管理    订阅  订阅
Java_文件IO(尚未完)

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());
		}
	}
}

  • 效果截图

截图

posted on 2020-03-16 21:24  LvGJ  阅读(244)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3