《Java》Java“文件操作”实际应用,
分享于 点击 45231 次 点评:6
《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();
}
}
}
运行结果:
相关文章
- 暂无相关文章
用户点评