今天通过视频学习了一点JAVA中文件的常用方法接下来通过具体例子来说明。
1.首先我们应该知道如何来创建一个文件对象:
假设现在我们现在要在d盘创建一个名字叫1234的txt文件
File f4 = new File("d:/1234.txt");
创建好之后我们可以得知文件的绝对路径:
System.out.println("f4的绝对路径" + f4.getAbsolutePath());
打印结果为:
f4的绝对路径d:\1234.txt
2.刚才只是创建一个文件对象,该文件在d盘中并没有真正出现过,现在我们要在d盘中手动创建一个名字叫123的txt文件,随后在文件中保存内容123,我们现在要通过一系列操作来获得这个文件的信息。
具体代码如下:
package file;
import java.io.File;
import java.util.Date;
public class TestFile2 {
public static void main(String[] args) {
File f = new File("D:/123.txt");
System.out.println("当前文件是:" + f);
//判断文件是否存在
System.out.println("当前文件是否存在" + f.exists());
//判断是否是文件夹
System.out.println("判断是否是文件夹:" + f.isDirectory());
//判断是否是文件
System.out.println("判断是否是文件" + f.isFile());
//文件的长度
System.out.println("文件的长度" + f.length());
//文件最后时间修改
long time = f.lastModified();
Date d = new Date(time);
System.out.println("最后修改文件时间" + d);
f.setLastModified(0);
//对文件重新命名
File f2 = new File("D:/321.txt");
f.renameTo(f2);
}
}
输出结果:
当前文件是:D:\123.txt
当前文件是否存在true
判断是否是文件夹:false
判断是否是文件true
文件的长度5
最后修改文件时间Thu Apr 18 19:43:37 GMT+08:00 2019
总结:
通过上述的一系列操作我们可以获取创立文件的绝对路径,是文件还是文件夹,以及文件的长度,甚至还可以修改文件的名称。
3 知道上述操作后,我们还要学习几个获取一个文件夹中所有文件的操作。
假如我们现在要知道c盘中windows目录下所有文件,我们可以执行如下操作:
File file = new File("C:\\WINDOWS");
File s[] = file.listFiles();//用文件数组取储存文件
s数组是文件数组,可以保存windows这个文件夹总所有的文件
知道这个之后我们可以找出这些文件中长度最大的文件和长度最小的文件以及他们的绝对路径。
代码如下:
package file;
import java.io.*;
public class TestFile4 {
public static void main(String[] args) {
File file = new File("C:\\WINDOWS");
File s[] = file.listFiles();//用文件数组取储存文件
long max = Long.MIN_VALUE;
long min = Long.MAX_VALUE;
int maxindex = 0;
int minindex = 0;
for(int i = 0;i < s.length;i++) {
if(s[i].isDirectory()) continue;//把目录去掉
if(max < s[i].length()){
max = s[i].length();
maxindex = i;
}
if(min > s[i].length()) {
min = s[i].length();
minindex = i;
}
}
System.out.println("最长文件名为:" + s[maxindex].getAbsolutePath() + "长度为:" + max);
System.out.println("最短文件名为:" + s[minindex].getAbsolutePath() + "长度为:" + min);
}
}
输出结果:
最长文件名为:C:\WINDOWS\explorer.exe长度为:3933296
最短文件名为:C:\WINDOWS\CSUP.txt长度为:12
嗯…果然在windows这个文件夹中存在这两个文件,而且确实是一个最大,一个最小。
最后,还有几种对文件的不同操作可以供大家参考
File f = new File("d:/321.txt");
// 以字符串数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
f.list();
// 以文件数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
File[]fs= f.listFiles();
// 以字符串形式返回获取所在文件夹
f.getParent();
// 以文件形式返回获取所在文件夹
f.getParentFile();
// 创建文件夹,如果父文件夹skin不存在,创建就无效
f.mkdir();
// 创建文件夹,如果父文件夹skin不存在,就会创建父文件夹
f.mkdirs();
// 创建一个空文件,如果父文件夹skin不存在,就会抛出异常
f.createNewFile();
// 所以创建一个空文件之前,通常都会创建父目录
f.getParentFile().mkdirs();
// 列出所有的盘符c: d: e: 等等
f.listRoots();
// 刪除文件
f.delete();
// JVM结束的时候,刪除文件,常用于临时文件的删除
f.deleteOnExit();
刚刚学习了java的文件操作,写的不对的地方希望大佬可以指出…