File--I/O 对文件的基本操作1

要学习的流

在这里插入图片描述

操作文件或者目录属性

程序的任务就是对数据的操作,我们编写完程序后,下次再使用的时候,希望数据是是上次结束时的数据,除了将数据保存到数据库中 ,我们还可以将数据保存在文件之中。文件呢就是指相关记录或者放在一起的数据的集合。目前我们的文件的类型有很多,常见的有TXT、doc、xls、jpg、java、class等。

使用file操作文件或者目录属性

对文件我们首先要学会如何使用File类操作文件或者目录。
File对象既可以表示文件,也可表示目录。在程序中一个File对象可以表示一个文件和目录。利用它可以用来对文或目录进行基本操作。它可以查出与文件相关的信息,如名称,最后修改的日期、文件的大小。
创建文件的语法如下:

File file=new File(String PathName)

其中pathName表示所指向的文件路径名。
例如 File file=new File(“C:\\test.txt”);创建一个指向c盘根目录下test.txt本文文件的对象。
要注意的是 在Windows系统中,文件路径名中的分隔符可以使用正斜杠“/”如“C:/test.txt”也可是使用反斜杠,但是要注意的是必须写成两个“\”这样。其中第一个是反义字符。

File类的常用方法

方法名称说明
exists()判断文件或者目录是否存在
isFile()判断是否是文件
isDirectory判读是否是目录
getPath()返回相对路径
getAbsolutePath()返回文件的绝对路径
getName()返回文件或者目录的名称
dele()删除此对象指定的文件或名称
createNewFile()创建名称为空文件,不创建文件夹
length()返回文件的长度,单位为字节,如文件不存在则返回ol

对文件的时候,我们可以使用下面四种的方法,

File file = new File("admin1.txt");
		System.out.println(file);
		
		File file2 = new File(
				"C:\\Users\\Song\\Workspaces\\MyEclipse 10\\Day0618\\admin.txt");
		System.out.println(file2);

		File file3 = new File("C:\\Users\\Song\\Workspaces\\MyEclipse 10\\Day0618","admin.txt");
		System.out.println(file3);

		 File file4 = new File(new File("C:\\Users\\Song\\Workspaces\\MyEclipse 10\\Day0618"),"admin.txt");
		 System.out.println(file4);

我们要注意后面这两种方式,这两种方式配合一些简单的算法,能很好的实现对文件的操作。
结果图:

admin1.txt
C:\Users\Song\Workspaces\MyEclipse 10\Day0618\admin.txt
C:\Users\Song\Workspaces\MyEclipse 10\Day0618\admin.txt
C:\Users\Song\Workspaces\MyEclipse 10\Day0618\admin.txt

其他的的方法测试:

// 获取绝对路径。。
		File absoluteFile = file.getAbsoluteFile();
		System.out.println(absoluteFile);

		// 相对路径(如果传的是绝对,则读出的也是绝对)
		String path = file2.getPath();
		System.out.println(path);
		
//		获取文件的名称
//		file.getName();
		String name = file.getName();
		System.out.println(name);
		
		//getParent  获取文件的父类路径
//	绝对可以使用,相对不可以使用
		String parent = file.getParent();
		System.out.println(parent);
//		长度 length
//		file.length();
		long length = file.length();
		System.out.println(length);

补充一个方法:

最近修改的时间

//		file.lastModified();
		long lastModified = file.lastModified();
		System.out.println(new Date(lastModified));

结果:

Thu Jun 18 21:58:09 CST 2020

list方法:
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。如果目录为空,那么数组也将为空。如果此抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null。

		String[] list = file.list();
		for (String string : list){
			System.out.println(string);
		}

listFiles方法:
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
如果此抽象路径名不表示一个目录,那么此方法将返回 null。否则返回一个 File 对象数组,每个数组元素对应目录中的每个文件或目录。

		File[] listFiles = file.listFiles();
		for (File file2 : listFiles) {
			System.out.println(file2);
		}

renameTo方法:
重新命名此抽象路径名表示的文件,
renameto 把源文件复制到指定的路径,并更改文件名。删除了源文件。如果呢目标文件存在,则不能进行renameTo,结果会返回Fasle。

File file2 = new File("admin.txt");
		File file3 = new File("C:\\Users\\admin_copy.txt");
		boolean renameTo = file2.renameTo(file3);
		System.out.println(renameTo);

mkdir方法:
创建此抽象路径名指定的目录。
返回:当且仅当已创建目录时,返回 true;否则返回 false

//mkdir 创建文件目录,如果存在就不创建,如果不存在,目标文件目录上一级是否存在,
//		如果上级存在,则创建成功,如果不存在,则创建失败
		File file=new File("hello.txt");
		boolean mkdir = file.mkdir();
		System.out.println(mkdir);

mkdirs 创建文件目录,如果存在就不创建,如果不存在,不在乎后面是什么样子,直接创建。
创建此抽象路径名指定的目录,包括所有必需但不存在的父目录

File file=new File("c://c1/c11/c111/c1111");
		boolean mkdirs = file.mkdirs();
		System.out.println(mkdirs);

做一个练习,读取一个文件夹中的后缀是.jpg的文件,还有文件中的.jpg的。

File  file=new  File("C:\\iotest\\img");
		String[] list = file.list();
		for(String str:list) {
			if(str.endsWith(".jpg")) {
				System.out.println(str);
			}
			
		}
			printJpg(new File("C:\\iotest\\img"));
	}
	// ตน้
	public  static  void  printJpg(File dir) {
		File[] listFiles = dir.listFiles();
		for(File f:listFiles) {
			if(f.isDirectory()) {
				printJpg(f);
			}else {
				if(f.getName().endsWith(".jpg")) {
					System.out.println(f.getAbsolutePath());
				}
			}
		}
	}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值