javaIO--文件操作类

文件操作类主要是使用File类的各种方法对文件和目录进行操作。包括文件名、文件长度、最后修改时间和是否只读等,提供获得当前文件的路径名、判断文件是否存在、创建、删除文件和目录等一系列的操作方法。

下面一段代码实现了读取当前目录及子目录文件列表的功能。

 1 public class IOtestFile {
 2     public static void main(String[] args) {
 3         new FileList();
 4     }
 5     
 6     static class FileList{
 7         int  count_dirs=0, count_files=0;
 8         long byte_files=0;
 9         public FileList(){
10             count(new File("."));//创建当前目录
11             System.out.println("共有" + count_files + "个文件,总字节数为: " + byte_files + "B");
12             System.out.println("共有" + count_dirs + "个目录");
13         }
14         private void count(File dir) {  //dir目录中文件列表,递归算法
15             // TODO Auto-generated method stub
16             System.out.println("当前目录的绝对路径:" + dir.getAbsolutePath());
17             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm");  
18             File[] files = dir.listFiles();   //返回当前目录中所有文件
19             for(int i=0; i<files.length; i++){    //目录和文件列表
20                 System.out.print(files[i].getName() + "	");
21                 if(files[i].isFile()){
22                     System.out.print(files[i].length() + "B	");
23                     count_files ++;
24                     byte_files += files[i].length();
25                 }else{
26                     System.out.print("<DIR>	");
27                     count_dirs ++;
28                 }
29                 System.out.println(sdf.format(new Date(files[i].lastModified())));  //显示文件修改时间
30             }
31             for(int i=0; i<files.length; i++){
32                 if(files[i].isDirectory()){
33                     count(files[i]);
34                 }
35             }
36         }
37     }
38 }

在我自己的电脑上的运行结果如下

当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.
.classpath    301B    2016-11-16 11:18
.project    381B    2016-11-16 11:15
.settings    <DIR>    2017-08-12 07:23
bin    <DIR>    2017-08-12 07:24
fibText.txt    87B    2017-08-15 07:27
fileInt.txt    96B    2017-08-15 03:04
info.txt    44B    2017-08-15 02:50
io.txt    10B    2017-08-15 02:41
io2.txt    44B    2017-08-15 02:50
src    <DIR>    2017-08-12 07:23
students.dat    150B    2017-08-15 03:44
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27..settings
org.eclipse.jdt.core.prefs    598B    2016-11-16 11:19
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.in
cn    <DIR>    2017-08-12 07:24
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.incn
itcast    <DIR>    2017-08-15 12:58
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.incnitcast
bat    <DIR>    2017-08-12 07:24
copy    <DIR>    2017-08-12 07:24
factory    <DIR>    2017-08-12 07:24
io    <DIR>    2017-08-15 08:18
list    <DIR>    2017-08-13 07:58
observer    <DIR>    2017-08-12 07:24
reflect    <DIR>    2017-08-12 07:24
regex    <DIR>    2017-08-14 08:08
single    <DIR>    2017-08-12 07:24
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.incnitcastat
Demo1.class    544B    2017-08-12 07:24
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.incnitcastcopy
Address.class    396B    2017-08-12 08:37
Demo1.class    1229B    2017-08-12 07:26
Demo2.class    2070B    2017-08-12 07:26
Person.class    1427B    2017-08-12 08:37
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.incnitcastfactory
BMW.class    277B    2017-08-12 10:34
BSJ.class    277B    2017-08-12 10:34
Car.class    272B    2017-08-12 10:34
Demo1.class    2419B    2017-08-12 10:34
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.incnitcastio
IOtestBit$ByteFile.class    2057B    2017-08-15 07:12
IOtestBit$IntFile.class    1909B    2017-08-15 07:12
IOtestBit$objectFile.class    1955B    2017-08-15 07:12
IOtestBit$Student.class    843B    2017-08-15 07:12
IOtestBit.class    1964B    2017-08-15 07:12
IOtestChar$TextFile.class    1727B    2017-08-15 07:27
IOtestChar.class    712B    2017-08-15 07:27
IOtestFile$FileList.class    2186B    2017-08-15 08:20
IOtestFile.class    494B    2017-08-15 08:20
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.incnitcastlist
Demo1.class    1197B    2017-08-12 08:59
Demo2.class    1683B    2017-08-13 08:13
StackList.class    1025B    2017-08-12 08:59
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.incnitcastobserver
Emp.class    1363B    2017-08-12 07:24
Student.class    1320B    2017-08-12 07:24
Weather.class    162B    2017-08-12 10:08
WeatherMain.class    1028B    2017-08-12 07:24
WeatherStation$1.class    1451B    2017-08-12 07:24
WeatherStation.class    1736B    2017-08-12 07:24
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.incnitcast
eflect
Demo1.class    1436B    2017-08-12 07:24
Demo2.class    1129B    2017-08-12 07:24
Demo3.class    1049B    2017-08-12 07:24
Demo4.class    1186B    2017-08-12 07:24
Person.class    1409B    2017-08-12 07:24
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.incnitcast
egex
Demo1.class    1931B    2017-08-14 08:08
Demo2.class    1250B    2017-08-14 08:27
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.incnitcastsingle
Demo1.class    274B    2017-08-12 07:24
Single.class    561B    2017-08-12 07:24
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.src
cn    <DIR>    2017-08-12 07:23
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.srccn
itcast    <DIR>    2017-08-15 12:58
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.srccnitcast
bat    <DIR>    2017-08-12 07:23
copy    <DIR>    2017-08-12 07:23
factory    <DIR>    2017-08-12 07:23
io    <DIR>    2017-08-15 08:04
list    <DIR>    2017-08-13 07:58
observer    <DIR>    2017-08-12 07:23
reflect    <DIR>    2017-08-12 07:23
regex    <DIR>    2017-08-14 08:08
single    <DIR>    2017-08-12 07:23
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.srccnitcastat
Demo1.java    853B    2016-11-16 11:19
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.srccnitcastcopy
Demo1.java    851B    2017-08-12 07:26
Demo2.java    1523B    2017-08-12 07:26
Person.java    794B    2017-08-12 08:37
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.srccnitcastfactory
Demo1.java    1467B    2017-08-12 10:34
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.srccnitcastio
IOtestBit.java    4985B    2017-08-15 07:12
IOtestChar.java    1148B    2017-08-15 07:27
IOtestFile.java    1326B    2017-08-15 08:20
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.srccnitcastlist
Demo1.java    1384B    2017-08-12 08:59
Demo2.java    884B    2017-08-13 08:13
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.srccnitcastobserver
Emp.java    757B    2016-11-16 11:19
Student.java    644B    2016-11-16 11:19
Weather.java    129B    2017-08-12 10:08
WeatherMain.java    527B    2016-11-16 11:19
WeatherStation.java    1813B    2016-11-16 11:19
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.srccnitcast
eflect
Demo1.java    1008B    2016-11-16 11:19
Demo2.java    1234B    2016-11-16 11:19
Demo3.java    1074B    2016-11-16 11:19
Demo4.java    723B    2016-11-16 11:19
Person.java    577B    2016-11-16 11:19
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.srccnitcast
egex
Demo1.java    1450B    2017-08-14 08:08
Demo2.java    1198B    2017-08-14 08:27
当前目录的绝对路径:D:eclipseworkspaceJavaTestday27.srccnitcastsingle
Demo1.java    793B    2016-11-16 11:19
共有68个文件,总字节数为: 72801B
共有25个目录
原文地址:https://www.cnblogs.com/K-artorias/p/7367574.html