java文件操作

根据指定的文件目录来创建一个文件对象

在某一个目录下创建多级子目录

package FileOperation;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

/**
 * 根据指定的文件目录来创建一个文件对象
 * 在某一个目录下创建多级子目录
 * 会使用到集合:
 * 根据指定文件目录,获取该文件目录当中的所有文件夹列表(只获取当前目录当中的)
 * 格局指定的文件目录来获取所有的java源文件的文件名
 * 
 * @author Administrator
 *
 */
public class FileOper {
//	在指定的父目录路径下创建一个目录文件对象
	public void createFile(String parentPath,String fileName)
	{
//		实例化一个文件对象来指向指定的父目录
		File parent=new File(parentPath);	
		if(parentPath !=null && parent.exists())
		{
//			判断指定的的文件目录是否存在
			System.out.println("文件目录存在");
			if(parent.isDirectory())
			{
				System.out.println("当前路径是一个目录文件对象");
//				在指定的文件目录下创建一个子文件对象,即使得该子文件对象指向指定目录的子文件对象
				File subFile=new File(parent, fileName);
//				System.out.println("subFile.exists="+subFile.exists());
				if(!subFile.exists())
				{
					System.out.println("当前文件目录名不存在,开始进行子目录的创建操作");
//				调用子文件对象来在指定的位置来创建一个文件目录
					if(subFile.mkdir())
					{
						System.out.println("文件目录创建成功");
					}
					else
						System.out.println("文件目录创建失败");
				}
				else
				{
					System.out.println("当前子文件目录已经存在");
				}
			}
			else
			{
				System.out.println("当前目录路径并不是一个目录文件对象");
			}
		}
		else
		{
			System.out.println("文件目录不存在");
		}
	}
	public void createFile(File parentFile,String fileName)
	{
		boolean flag=false;
		if(fileName.endsWith(".xls"))
		{
			if(parentFile.exists())
			{
				if(parentFile.isDirectory())
				{
					File file=new File(parentFile, fileName);
					if(!file.exists())
					{
						try {
							file.createNewFile();
							System.out.println("文件创建成功");
						} catch (IOException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
							System.out.println("在指定的目录下进行文件对象的创建失败");
						}
					}
					else
					{
						System.out.println("所创建的文件对象已经存在");
					}
				}
				else
				{
					System.out.println("当前文件并非文件目录");
				}
			}
			else
			{
				System.out.println("文件目录不存在");
				parentFile.mkdir();
			}
		}
		else
		{
			System.out.println("文件对象的后缀名必须是.xls");
		}
	}
//	获取指定文件目录下的全部的子文件对象并进行输出
	public List getSubAllFile(String pathe)
	{
		File parentFile=new File(pathe);
		List<File> fileList=new ArrayList<>();
		List<File> dirList=new ArrayList<>();
		List<List<File>> lists=new ArrayList<>();
		if(pathe!=null && parentFile.isDirectory())
		{
//			获取当前指定目录文件对象的所有子文件对象
			File[] files=parentFile.listFiles();
			for (File file : files) {
				if(file.isFile())
				{
					System.out.println("文件名:"+file.getName());
					fileList.add(file);
				}
				if(file.isDirectory())
				{
					System.out.println("目录名:"+file.getName());
					dirList.add(file);
				}
			}
			lists.addAll((Collection<? extends List<File>>)fileList);
			lists.addAll((Collection<? extends List<File>>) dirList);
//			对集合对象进行迭代输出
			System.out.println("调用迭代器来对象集合对象当中的内容进行输出操作:");
			Iterator<List<File>> iterator=lists.iterator();
			while(iterator.hasNext())
			{
				System.out.println(iterator.next());
			}
		}
		return lists;
	}
//	获取指定文件夹对象当中的所有java源文件对象并进行输出
	public void getJavaFiles(String path)
	{
		File file=new File(path);
		List<File> list=new ArrayList<File>();
		if(path!=null && file!=null)
		{
			File[] files=file.listFiles();
			for (File subFile : files) {
				if(subFile.getName().endsWith(".java"))
				{
					list.add(subFile);
				}
			}
			Iterator<File> iterator=list.iterator();
			System.out.println("java源文件为:");
			while(iterator.hasNext())
			{
				System.out.println(iterator.next());
			}
		}
		else
		{
			System.out.println("所输入的文件对象或文件名为空");
		}
	}
//	以递归的方式来获取指定文件夹当中的所有文件对象
	public void getFiles(String path,List<File> fList)
	{
		File file=new File(path);
		if(path!=null && file!=null)
		{
			File[] files=file.listFiles();
			for (File subFile : files)
			{
				if(subFile.isFile())
				{
					fList.add(subFile);
//					System.out.println("fileName="+subFile.getName());
				}
				if(subFile.isDirectory())
				{
//					System.out.println("DirFileName:"+subFile.getPath());
//					list.addAll(getFiles(subFile.getPath()));
					getFiles(subFile.getPath(), fList);
				}
			}
		}
		else
		{
			System.out.println("文件名或文件路径为空");
		}
	}
	public static void main(String[] args) {
		FileOper oper=new FileOper();
//		oper.createFile("C:/Users/Administrator/Desktop/javatest","subDir");
//		File file=new File("C:/Users/Administrator/Desktop/javatest/test2");
//		oper.createFile(file, "file.xls");
//		oper.getSubAllFile("C:/Users/Administrator/Desktop");
//		oper.getJavaFiles("C:/Users/Administrator/Desktop/javaEEConde2/projectTraining1/src/collection");
		List<File> fList=new ArrayList<>();
		oper.getFiles("C:/Users/Administrator/Desktop/javaEEConde2/projectTraining1",fList);
		Iterator<File> iterator=fList.iterator();
		while (iterator.hasNext()) {
			System.out.println(iterator.next());
			
		}
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值