java file类总结

15 篇文章 0 订阅

直入正题

代码(自己可以复制去看)

里面主要     介绍了文件的File类的新建、删除、重命等操作,以及File文件的属性方法

package com.gx.iodemo;

import java.awt.BufferCapabilities.FlipContents;
import java.io.File;
import java.io.IOException;

/**
 * File 文件类   
 *  File类是Java.io包下代表与平台(系统)无关的文件和目录。
 * 	可以新建文件(目录)、删除文件(目录)、重命名文件(目录),(还可以做到类似移动文件效果)
 *  但是不能读取文件内容。
 * @author en
 *
 */
public class Demo01_File {
	public static void main(String[] args) throws IOException {
		// windows的路径 D:\目录\目录\   由于\为转义字符  应该写为 D:\\目录\\目录\\
		//linux或者unix的路径为  /Home/.....
		//在Java支持将/当作平台无关的分隔符。
		
		/*
		 * 1、pathSeparator与pathSeparatorChar与系统文件路径分隔有关
		 * 例如:    F:\Java学习\文件操作与异常;G:\重装系统        
		 * 其中的  “;” 为    “F:\Java学习\文件操作与异常”   和         “G:\重装系统” 两个不同路径的分隔符
		 * 两者的不同在于:pathSeparator被表示为一个字符串,如果此字符串只包含一个字符,则可用pathSeparatorChar来表示。
		 * 还有,pathSeparator、pathSeparatorChar是路径分隔符,在Window上是";",在Unix上是":"

         *2、separator与separatorChar在同一个路径之下,相邻层级目录间或目录与文件间的分隔符有关
         *例如:     F:\Java学习\文件操作与异常其中的“\”为  “Java学习”和“文件操作与异常”两个相邻层级目录的分隔符
         *两者的不同在于:separator被表示为一个字符串,如果此字符串只包含一个字符,则可用separatorChar来表示。
         *还有,separator、separatorChar是名称分隔符,在Window上是"\",在Unix上是“/”
		 * 
		 */
		//指的是分隔连续多个路径字符串的分隔符.例如:java   -cp   test.jar;abc.jar   HelloWorld 
		System.out.println(File.pathSeparator);
		
		//才是用来分隔同一个路径字符串中的目录的,例如:C:/Program Files/Common Files 
		System.out.println(File.separator);
		
		//pathSeparator、pathSeparatorChar是路径分隔符,在Window上是";",在Unix上是":"
		System.out.println(File.pathSeparatorChar);
		System.out.println(File.separatorChar);
		
		
		//访问文件名相关方法
		File file=new File("E:/e");
		System.out.println("文件(目录)名称:"+file.getName());
		System.out.println("文件(目录)路径:"+file.getPath());
		System.out.println("文件(目录)绝对路径:"+file.getAbsolutePath());
		System.out.println("文件(目录)的父目录:"+file.getParent());
		if (file.isDirectory()) {//是否是目录
			String[] strings=file.list();//获取子文件和子目录
			System.out.println("当前目录下的子文件和子目录");
			for (String string : strings) {
				System.out.println(string);
			}
		}
		
		//创建文件
		File file_2=new File("E:/e/123.txt");
		System.out.println("文件是否存在"+file_2.exists());
		System.out.println("是否创建成功文件:"  +file_2.createNewFile());//创建文件
		
		//创建文件夹
		File file_1=new File("E:/e/b");
		System.out.println("文件是否存在"+file_1.exists());
		System.out.println("是否创建成功文件夹:"  +file_1.mkdir());//新建子目录(即文件夹)//创建文件夹

		//读写执行 
		System.out.println("是否可写:"+file_2.canWrite());
		System.out.println("是否可读:"+file_2.canRead());
		System.out.println("是否可执行:"+file_2.canExecute());
		System.out.println("是否是目录:"+file_2.isDirectory());
		System.out.println("是否可文件:"+file_2.isFile());
		System.out.println("是否绝对路径:"+file_2.isAbsolute());
		System.out.println("是否隐藏:"+file_2.isHidden());
		
		
		//----创建一个文件
		System.out.println("--------------------");
		File file3=new File("D:\\test.txt");
		System.out.println("创建文件:"+file3.createNewFile());
		System.out.println("文件存在:"+file3.exists());
		System.out.println("删除文件:"+file3.delete());
		System.out.println("文件存在:"+file3.exists());
		System.out.println("创建文件:"+file3.createNewFile());
		System.out.println("文件大小:"+file3.length()+"字节");//
		System.out.println("文件最后修改时间:"+file3.lastModified());
		file3.renameTo(new File("E:\\z\\12\\test.txt"));//重命名 可以变相看做移动文件
		//file3.deleteOnExit();//程序退出时删除文件
	}
}

一个案例(根据对应路径循环获取路径下的  文件夹和文件)

package com.gx.iodemo;

import java.io.File;

/**
 * 循环输出某路径下的文件夹和文件
 * 
 * @author 星月
 *
 */
public class Demo02_File {
	public static void main(String[] args) {
		File file=new File("E:\\Dev");//当前目录
		printFile(file,0);
	}
	
	public static void printFile(File file,int count){
		if (file.exists()) {//测试文件或目录是否存在
			StringBuffer buffer=new StringBuffer();
			if (count!=0) {
				buffer.append("|");
			}
			for (int i = 0; i < count; i++) {
				buffer.append("--");
			}
			if (file.isDirectory()) {//Directory目录     是否为目录   
				System.out.println(buffer.toString()+"["+file.getName()+"]");
				File[] files=file.listFiles();//在这获取file文件下的     文件和文件夹     数组值
				//(递归)为文件夹时,再次调用自身方法 
				for (File file2 : files) {
					//达到效果为:循环第一次的文件夹下的数据,
					//情况:1、是文件夹时,会再次重复类似的循环、
					//    2、是文件时,直接输出
					printFile(file2,count+1);
				}
			}
			else{
				System.out.println(buffer.toString()+">"+file.getName());
			}
		} 
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值