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() + "\t");
21                 if(files[i].isFile()){
22                     System.out.print(files[i].length() + "B\t");
23                     count_files ++;
24                     byte_files += files[i].length();
25                 }else{
26                     System.out.print("<DIR>\t");
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:\eclipseworkspace\JavaTest\day27\.
.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:\eclipseworkspace\JavaTest\day27\.\.settings
org.eclipse.jdt.core.prefs    598B    2016-11-16 11:19
当前目录的绝对路径:D:\eclipseworkspace\JavaTest\day27\.\bin
cn    <DIR>    2017-08-12 07:24
当前目录的绝对路径:D:\eclipseworkspace\JavaTest\day27\.\bin\cn
itcast    <DIR>    2017-08-15 12:58
当前目录的绝对路径:D:\eclipseworkspace\JavaTest\day27\.\bin\cn\itcast
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:\eclipseworkspace\JavaTest\day27\.\bin\cn\itcast\bat
Demo1.class    544B    2017-08-12 07:24
当前目录的绝对路径:D:\eclipseworkspace\JavaTest\day27\.\bin\cn\itcast\copy
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:\eclipseworkspace\JavaTest\day27\.\bin\cn\itcast\factory
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:\eclipseworkspace\JavaTest\day27\.\bin\cn\itcast\io
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:\eclipseworkspace\JavaTest\day27\.\bin\cn\itcast\list
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:\eclipseworkspace\JavaTest\day27\.\bin\cn\itcast\observer
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:\eclipseworkspace\JavaTest\day27\.\bin\cn\itcast\reflect
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:\eclipseworkspace\JavaTest\day27\.\bin\cn\itcast\regex
Demo1.class    1931B    2017-08-14 08:08
Demo2.class    1250B    2017-08-14 08:27
当前目录的绝对路径:D:\eclipseworkspace\JavaTest\day27\.\bin\cn\itcast\single
Demo1.class    274B    2017-08-12 07:24
Single.class    561B    2017-08-12 07:24
当前目录的绝对路径:D:\eclipseworkspace\JavaTest\day27\.\src
cn    <DIR>    2017-08-12 07:23
当前目录的绝对路径:D:\eclipseworkspace\JavaTest\day27\.\src\cn
itcast    <DIR>    2017-08-15 12:58
当前目录的绝对路径:D:\eclipseworkspace\JavaTest\day27\.\src\cn\itcast
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:\eclipseworkspace\JavaTest\day27\.\src\cn\itcast\bat
Demo1.java    853B    2016-11-16 11:19
当前目录的绝对路径:D:\eclipseworkspace\JavaTest\day27\.\src\cn\itcast\copy
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:\eclipseworkspace\JavaTest\day27\.\src\cn\itcast\factory
Demo1.java    1467B    2017-08-12 10:34
当前目录的绝对路径:D:\eclipseworkspace\JavaTest\day27\.\src\cn\itcast\io
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:\eclipseworkspace\JavaTest\day27\.\src\cn\itcast\list
Demo1.java    1384B    2017-08-12 08:59
Demo2.java    884B    2017-08-13 08:13
当前目录的绝对路径:D:\eclipseworkspace\JavaTest\day27\.\src\cn\itcast\observer
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:\eclipseworkspace\JavaTest\day27\.\src\cn\itcast\reflect
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:\eclipseworkspace\JavaTest\day27\.\src\cn\itcast\regex
Demo1.java    1450B    2017-08-14 08:08
Demo2.java    1198B    2017-08-14 08:27
当前目录的绝对路径:D:\eclipseworkspace\JavaTest\day27\.\src\cn\itcast\single
Demo1.java    793B    2016-11-16 11:19
共有68个文件,总字节数为: 72801B
共有25个目录

 

posted @ 2017-08-15 20:28  K_artorias  阅读(244)  评论(0编辑  收藏  举报