一、任务目标

1.完成一个java application应用程序,判别指定路径下指定文件名的文件是否存在。如果指定文件存在,读取并分别显示其修改时间和文件大小等属性。
2.以文本方式打开某一指定路径指定文件名的文本文件,读取其内容并显示。
3.以文本方式向某一指定路径指定文件名的文本文件写入指定文本内容,例如:写入自己的姓名和学号。

二、“File类”概述

    File类是java.io包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无光的方法来操作文件,可以通过调用File类中的方法,实现创建、删除、重命名文件等操作。File类的对象主要用来获取文件本身的一些信息,如文件所在目录、文件的长度、文件读写权限等。

1.创建文件对象

File(String pathname)
其中,pathname值路径名称(包含文件名)。例如:

File file = new File("D:/1.txt")

file就是一个文件对象。

2.File类的常用方法

方法

返回值

说明

getName()

String

获取文件的名称

cnaRead()

boolean

判断文件是否为可读的

canWrite()

boolean

判断文件是否可被写入

exits()

boolean

判断文件是否存在、

length()

long

获取文件的长度(以字节为单位)

getAbsolutePath()

String

获取文件的绝对的路径

getParent()

String

获取文件的父路径

isFile()

boolean

判断文件是否存在

isDirectory()

boolean

判断文件是否为一个目录

isHidden()

boolean

判断文件是否为隐藏文件

lastModified()

long

获取文件最后修改时间

3.FileReader和FileWriter类

    FileReader流顺序地读取文件,只要不关闭流,每次调用read()方法就顺序地读取源中其余的内容,直到源的末尾或流被关闭。FileWriter流利用同样的原理,通过write()方法将信息写入目标文件中。

三、“文件操作”实际应用

任务1:

文本文件(F:/TCC/word.txt):

aio操作文件 java java实现文件操作_aio操作文件 java


程序代码:

import java.io.File;   //导入File方法
import java.util.Date;;  //导入Date方法

public class FileNature {   //创建类FileNature

	public static void main(String[] args) { //主程序入口
		
		File file = new File("F:/TCC/word.txt");//创建文件对象file
		//isFile()方法判断文件是否存在,返回boolean类型
		if(file.isFile()){ 
			//lastModified()方法获取文件最后的修改时间,返回时间戳,需要用Date()方法对时间戳进行转换
			Date time = new Date(file.lastModified()); 
			//length()方法获取文件的长度(以字节为单位)
			long length = file.length(); 
			System.out.println("文件修改时间:"+time);
			System.out.println("文件长度:"+length+" "+"byte");
		}
		else{
			System.out.println("word.txt文件不存在");
		}
	}
}

注:lastModified()方法获取文件最后的修改时间,返回时间戳,需要用Date()方法对时间戳进行转换

运行结果:

aio操作文件 java java实现文件操作_System_02


任务2:

程序代码:

import java.io.*; //导入IO流

public class FileRead {  //创建类FileRead
	
	public static void main(String[] args) {
		
		File file = new File("F:/TCC/word.txt");//创建文件对象file
		try{  //捕捉异常
			FileReader in = new FileReader(file);  //创建FileReader对象in
			char byt[] = new char[1024];  //定义字符型变量数组byt
			int len = in.read(byt);  //使用read()方法将word.txt的内容读入数组byt中
			System.out.println("文件中的内容为:"+"\n"+new String(byt,0,len));//输出所去读取到的内容
			in.close();//关闭流
		}catch(Exception e1){
			e1.printStackTrace();
		}
	}
}

运行结果:

aio操作文件 java java实现文件操作_java_03


注:在运行结果中我们会看到“富强”前面多出了一个“?”,这是由于在文件开头有BOM编码的识别,所以在选择编码方式时应该选择UTF-8-无BOM编码


任务3:

文本文件(F:/TCC/text.txt):

aio操作文件 java java实现文件操作_Java_04

程序代码:

import java.io.File;
import java.io.*;

public class FileWrite {

	public static void main(String[] args) {
		
		File file = new File("F:/TCC/text.txt");//创建文件对象file
		try{  //捕捉异常
			FileWriter out = new FileWriter(file); //创建FileWriter对象out
			String c = "学号:201822|姓名:小明";  //定义字符串常量c
			out.write(c); //使用write()方法将c的内容写入目标文件text.txt中
			System.out.println("写入成功!");
			out.close(); //关闭流
		}catch(Exception e1){
			e1.printStackTrace();
		}
	}
}

运行结果:

aio操作文件 java java实现文件操作_Java_05