java里File类的简单使用

—001—
常见的File 路径 还有一种是new File(String parent,String child)的 用法

import java.io.File;
    
    public class io001 {
    	//io流
    	//两个常量:1.路径分隔符;
    	//			2.文件分割符\
    	public static void main(String[] args) {
    		System.out.println(File.pathSeparator);
    		System.out.println(File.separator);
    		//路径表示形式1
    		String path = "D:\\xp\\test\\2.jpg";
    		//动态生成用2
    		path = "E:"+File.separator+"xp"+File.separator+"test"+File.separator+"3.jpg";
    		//推荐这种3
    		path = "E:/xp/test/2.jpg";
    
    		//相对路径
    		String parentPath = "D:/xp/test";
    		String name = "2.jpg";
    		File src = new File(parentPath,name);
    		src = new File(new File(parentPath),name);
    		System.out.println(src.getName());
    		System.out.println(src.getPath());
    
    		//绝对路径
    		src = new File("E:/xp/test/2.jpg");
    		System.out.println(src.getName());
    		System.out.println(src.getPath());
    
    		//没有盘符
    		src = new File("test.txt");
    		System.out.println(src.getName());
    		System.out.println(src.getPath());
    		System.out.println(src.getAbsolutePath());
    	}
    
    }

—002—
文件的创建和删除

import java.io.File;
import java.io.IOException;

public class io002 {

	public static void test1() {
		//1.获取文件路径信息
		File src = new File("D:/xp/test/2.jpg");
		System.out.println(src.getName());
		//如果是绝对路径 返回完整路径
		//如果是相对路径 返回相对路径
		System.out.println(src.getPath());
		//返回绝对路径
		System.out.println(src.getAbsolutePath());
		//返回上一级目录
		//如果是相对,返回空
		System.out.println(src.getParent());
	}

	public static void test2(){

		//2.获取详细信息
		String path = "D:/xp/test/2.jpg";
		File src = new File(path);
		System.out.println("文件是否存在"+src.exists());
		System.out.println("文件是否可写"+src.canWrite());
		System.out.println("文件是否可写"+src.canRead());
		if(src.isFile()){
			System.out.println("文件");
			System.out.println("读取字节长度"+src.length());
		}else if(src.isDirectory()){
			System.out.println("文件夹");
		}else if(src.isAbsolute()){
			System.out.println("绝对路径");
		}else{
			System.out.println("假装不知道你是啥");
		}
	}

	public static void test3() throws IOException, InterruptedException {

		//3.创建和删除文件
		//系统关键字会创建失败

		//create
		String path = "D:/mydirec";
		File src = new File(path);
		if(src.exists()){
			System.out.println("文件存在啦");
		}else{
			boolean flag = false;
			try {
				flag = src.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
			System.out.println(flag?"创建成功":"创建失败");
		}

		//delete
		if(src.exists()){
			boolean flag2 = src.delete();
			System.out.println(flag2?"删除成功":"删除失败");
		}else{
			System.out.println("文件不存在");
		}

		//临时文件的创建
		//static createTempFile(前缀3个字节长,后缀默认.temp)默认临时目录
		//static createTempFile(前缀3个字节长,后缀默认.temp,目录)
		//程序结束后删除
		File temp =File.createTempFile("tes",".temp",new File("D:/"));
		System.out.println("创建临时文件成功");
		Thread.sleep(1000);
		temp.deleteOnExit();
	}


	public static void main(String[] args) throws IOException, InterruptedException {
		io002 io = new io002();
		io002.test2();
		io002.test3();
	}
}

**—003—
子目录和文件筛选

import java.io.File;
import java.io.FilenameFilter;

public class io003 {
	public static void main(String[] args) {
		String path = "D:/learn/src/IOclass";
		File src = new File(path);
		//创建目录,父目录必须存在 不存在则创建失败
		//src.mkdir();
		//创建目录,如果父目录不存在 一同创建
		//src.mkdirs();
		if (src.isDirectory()) {
			System.out.println("===子目录|文件名===");
			String[] subNames = src.list();
			for (String temp : subNames) {
				System.out.println(temp);
			}
			System.out.println("===子目录|文件File对象===");
			File[] subFiles = src.listFiles();
			for (File temp : subFiles) {
				System.out.println(temp.getName());
				System.out.println(temp.getAbsolutePath());
			}


			System.out.println("===子文件,java对象==");
			//命令设计模式
			subFiles = src.listFiles(new FilenameFilter() {
				@Override
				//dir代表src,目标目录
				public boolean accept(File dir, String name) {
					return new File(dir, name).isFile() && name.endsWith("java");
				}
			});
			for(File temp : subFiles){
				System.out.println(temp.getName());
			}
		}
	}
}

–004–
简单的目录遍历

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

public class io005 {
	public static void iterdirec(File src) {
		if (src.equals(null)) {
			return;
		}
		System.out.println(src.getAbsolutePath());
		if(src.isDirectory()){
			for(File sub : src.listFiles()){
				iterdirec(sub);
			}
		}
	}
	public static void main(String[] args){
		//输出子孙及目录
		//递归方法
		String path = "D:/learn/src/IOclass";
		File src = new File(path);
		io005.iterdirec(src);

		//输出根目录
		File[] root = File.listRoots();
		System.out.println(Arrays.toString(root));
		//System.out.println(root.toString());

		for(File temp:root){
			try{
			iterdirec(temp);
		}catch(NullPointerException n){}
	}
}}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值