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

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

 public class IOtestFile {
public static void main(String[] args) {
new FileList();
} static class FileList{
int count_dirs=0, count_files=0;
long byte_files=0;
public FileList(){
count(new File("."));//创建当前目录
System.out.println("共有" + count_files + "个文件,总字节数为: " + byte_files + "B");
System.out.println("共有" + count_dirs + "个目录");
}
private void count(File dir) { //dir目录中文件列表,递归算法
// TODO Auto-generated method stub
System.out.println("当前目录的绝对路径:" + dir.getAbsolutePath());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm");
File[] files = dir.listFiles(); //返回当前目录中所有文件
for(int i=0; i<files.length; i++){ //目录和文件列表
System.out.print(files[i].getName() + "\t");
if(files[i].isFile()){
System.out.print(files[i].length() + "B\t");
count_files ++;
byte_files += files[i].length();
}else{
System.out.print("<DIR>\t");
count_dirs ++;
}
System.out.println(sdf.format(new Date(files[i].lastModified()))); //显示文件修改时间
}
for(int i=0; i<files.length; i++){
if(files[i].isDirectory()){
count(files[i]);
}
}
}
}
}

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

当前目录的绝对路径: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个目录

javaIO--文件操作类的更多相关文章

  1. [C#] 常用工具类——文件操作类

    /// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...

  2. 文件操作类CFile

    CFile file; CString str1= L"写入文件成功!"; wchar_t *str2; if (!file.Open(L"Hello.txt" ...

  3. asp.net文件操作类

    /** 文件操作类 **/ #region 引用命名空间 using System; using System.Collections.Generic; using System.Text; usin ...

  4. android 文件操作类简易总结

    android 文件操作类(参考链接) http://www.cnblogs.com/menlsh/archive/2013/04/02/2997084.html package com.androi ...

  5. Ini文件操作类

    /// <summary> /// Ini文件操作类 /// </summary> public class Ini { // 声明INI文件的写操作函数 WritePriva ...

  6. java csv 文件 操作类

    一个CSV文件操作类,功能比较齐全: package tool; import java.io.BufferedReader; import java.io.BufferedWriter; impor ...

  7. Qt5:Qt文件操作类 QFile

    在QT中,操作文件一般不使用C++提供的文件操作类 , 因为操作文件的时候,要用到C++提供的 string 类,而在QT中使用的是Qt自己实现的一个string类 QString .在Qt中使用C+ ...

  8. C# 文件操作类大全

      C# 文件操作类大全 时间:2015-01-31 16:04:20      阅读:1724      评论:0      收藏:0      [点我收藏+] 标签: 1.创建文件夹 //usin ...

  9. Java文件操作类效率对比

    前言 众所周知,Java中有多种针对文件的操作类,以面向字节流和字符流可分为两大类,这里以写入为例: 面向字节流的:FileOutputStream 和 BufferedOutputStream 面向 ...

  10. JAVA文件操作类和文件夹的操作代码示例

    JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...

随机推荐

  1. js实现所有异步请求全部加载完毕后,loading效果消失

    在实际开发中,一定有情况是这样的,一个页面我们有多个地方请求了ajax,在这种情况下,我们要实现数据没来之前出现我们炫酷的loading效果,而且要等到所有的ajax都请求完毕后,才让我们的loadi ...

  2. 【Storm一】Storm安装部署

    storm安装部署 解压storm安装包 $ tar -zxvf apache-storm-1.1.0.tar.gz -C /usr/local/src 修改解压后的apache-storm-1.1. ...

  3. Python3简单登录接口编写及遇到的问题分享

    1.程序目标 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 2.思路 利用python中的pickle模块,实现用户登录信息(采用dict)和被锁定用户信息(采用list)的存储.所以我预先 ...

  4. Python(9-18天总结)

    day9:函数:def (形参): 函数体 函数名(实参)形参:在函数声明位置的变量 1. 位置参数 2. 默认值参数 3. 混合 位置, 默认值 4. 动态传参, *args 动态接收位置参数, * ...

  5. Qt :undefined reference to vtable for "xxx::xxx"

    现象: 类加上宏 Q_OBJECT 就会报错 :undefined reference to vtable for "xxx::xxx" 解决方法: 重新 qmake 其他情况,查 ...

  6. 小程序开发-10-新版Music组件、组件通信与wxss样式复用

    加入缓存提升用户体验 思路:先从缓存中寻找数据或者从服务器中获取数据写入缓存中 优点:减少网络访问次数,提升用户体验 解决缓存带来的问题 问题:比如原先是不喜欢的在点击喜欢的时候,跳到下一期刊后返回来 ...

  7. 成都Uber优步司机奖励政策(3月2日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  8. linux (rm指令) 及误删除解决

    今天在群里看见这一幕: 看到这儿,我们学习一下 这个RM指令 rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉.对于链接文件,只是删除整个链接文件 ...

  9. Centos7 下安装以及使用mssql

    Centos7下安装以及使用Mssql,在这下面玩,主要是发现linux环境下的mysql非常的小,小到只有169M,这在windows上面,动撤几个G的安装文件,会让你直接打消使用MSSQL的勇气, ...

  10. 惊喜Skr人,Istio的创始人Shriram Rajagopalan手把手教你如何使用Istio

    Shriram与来自Google.Lyft.IBM和其他公司的社区贡献者们一起并肩作战,积极地向Istio和Envoy项目作贡献.同时,Shriram是IBM的Amalgam8项目的创始成员之一.目前 ...