《Java》Java“文件操作”实际应用

一、任务目标

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):
在这里插入图片描述
程序代码:

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()方法对时间戳进行转换

运行结果:
在这里插入图片描述


任务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();
		}
	}
}

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


任务3:

文本文件(F:/TCC/text.txt):
在这里插入图片描述

程序代码:

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();
		}
	}
}

运行结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值