文件基本操作一

/* * 文件操作类 * java IO * 使用File类进行文件的操作 * *
如果要进行所有文件以及文件内容的开发操作,应该使用java。io包完成 * java。io包里面一共有5个核心类 和一个核心接口 *
五个核心类:File InputStream OutputStream Reader Writer *
一个核心接口:Serializable * * 在整个javaa.io包里面
File类是唯一一个与文件本身操作有关的类,但是不涉及到文件的具体内容 * 所谓文件本身就是文件创建,删除等操作 *
如果要想使用File类,那么首先就需要通过它提供的构造方法定义一个要操作文件的路径 * 1 构造方法:public
File(String pathname) 设置完整路径 * public File(File parent, String
child) 设置父路径与子文件路径 在Android使用 * * *操作文件 * 创建文件 public boolean
createNewFile() throws IOException * 1 如果目录不能访问 * 2 如果现在文件重名 *
3 文件名称错误 就会抛异常 * 删除文件 public boolean delete() * * 判断文件是否存在
public boolean exists() * * 在 windows系统里面支持的是\路径分隔符, Linux使用的是/

    • 在File类中提供有常量 public static final String separator 表示分隔符 * 在进行java.io操作的过程之中,会出现有延迟情况,因为现在的问题是java程序是通过JVM程序的调用 *
      操作系统的文件处理函数进行文件处理操作,所以中间会出现延迟情况 * * 创建包含有子目录的文件 *File file = new
      File(“D:”+File.separator+“demo”+File.separator+“test.txt”);
      *如果demo目录不存在,所以系统会认为此时的路径是不能够使用的,那么就会出现创建错误, *使用必须要想办法判断的父路径是否存在 * 找父路径:public String getParent() 返回此抽象路径名的父null的路径名字符串,如果此路径名未命名为父目录,则返回null。
      抽象路径名的父项由路径名的前缀(如果有)和路径名的名称序列中的每个名称组成, 除了最后一个。 如果名称序列为空,则路径名不会指定父目录。
      public File getParentFile()
      返回此抽象路径名的父null抽象路径名,如果此路径名未命名为父目录,则返回null。
      抽象路径名的父项由路径名的前缀(如果有)和路径名的名称序列中的每个名称组成, 除了最后一个。 如果名称序列为空,则路径名不会指定父目录。
      mkdir() mkdir 创建一级 mkdirs 创建多级路径 在File类里面还踢狗了有一系列取得内容的操作 1
      取得文件大小 public long length() 按照字节返回 判断是否是文件: public boolean
      isFile() 判断是否是目录: public boolean isDirectory() 返回最近一次修改日期 public
      long lastModified() 整个取得过程里面都是取得文件的相关操作,但是不包含有文件的内容
      整个磁盘上除了文件之外,还会包含有使用的目录,对于目录而言,最为常用的功能应该就是
      列出目录组成,在File类里面定义有如下的两个两个列出目录的方法: 1 列出目录下的信息 public String[]
      list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。 2 列出所有的信息以File类对象包装:public
      File[] listFiles(FileFilter filter)
import java.io.File;
import java.math.BigDecimal;
import java.security.PublicKey;
import java.text.SimpleDateFormat;
import java.util.Date;


public class wenjiancaozuo {

	public static void main(String[] args) throws Exception {
		// TODO 自动生成的方法存根
//		File file = new File("D:"+File.separator+"test.txt"); //设置文件的路径
//		if(file.exists())  /// 文件存在
//		{
//			file.delete();
//		}
//		else 
//		{
//			System.out.println(file.createNewFile());
//		}
//		File file = new File("D:"+File.separator+"demo"+
//						File.separator+"hello"+File.separator
//						+"nihao"+File.separator+"test.txt"); //设置文件的路径
//		if(!file.getParentFile().exists()) ///现在父路径不存在
//		{
//			/// 创建目录
//			file.getParentFile().mkdirs();   创建父路径  mkdir 创建一级
//		}
//		if(file.exists())  /// 文件存在
//		{
//			file.delete();
//		}
//		else 
//		{
//			System.out.println(file.createNewFile());
//		}
		
		File file = new File("D:"+File.separator+"demo"+
					File.separator+"WIN_20201207_16_29_20_Pro.jpg");
		if(file.exists())
		{
			System.out.println("是否是文件"+file.isFile());
			System.out.println("是否是目录"+file.isDirectory());
			System.out.println("文件大小"+(new BigDecimal((double)file.length()/1024/1024)).
					divide(new BigDecimal(1),2,BigDecimal.ROUND_HALF_UP));
			System.out.println("上次修改时间"+file.lastModified());///1607329760470
			System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").
					format(new Date(file.lastModified())));

		
		}
		System.out.println(file.getPath());
		
		File file1 = new File("e:"+File.separator);
		if(file1.isDirectory())  /// 是否是目录
		{
			String result[] = file1.list();
			for (int i = 0; i < result.length; i++)
			{
				System.out.println(result[i]); /// 此时列出来是目录下的子目录或者名字  
			}
			
			System.out.println("---------------------------------------");
			File result1[] = file1.listFiles();
			for (int x = 0; x < result1.length; x++) 
			{
//				System.out.println(result1[x]);e:\WinRAR电脑版.exe
				System.out.println(result1[x].getName()+"\t\t\t\t"
						+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").
						format(new Date(result1[x].lastModified()))+"\t\t"+
						(result1[x].isDirectory()?"文件夹":"文件")
						+"\t\t"+(result1[x].isFile()?(new BigDecimal((double)file.length()/1024/1024)).
								divide(new BigDecimal(1),2,BigDecimal.ROUND_HALF_UP):""));
			}
			
		}
		
		
		/// 实现递归操作
		
//		File file2 = new File("e:"+File.separator+"BaiduNetdisk");
		File file2 = new File("e:");
		print(file2);
		
	}
	
	public static void print(File file)
	{
		if(file.isDirectory())  /// 如果现在给定的是一个路径
		{
			File resultFile [] = file.listFiles();
			if(resultFile!=null)
			{
				for (int i = 0; i < resultFile.length; i++)
				{
					print(resultFile[i]);
				}
			}
			
		}
		System.out.println(file);
	}

}

你可能感兴趣的:(java,android,开发语言)