【分类】

Java的IO通过java.io包下的类和接口来支持。

1.按照流向:

输入流     输出流

2.按照操作数据的大小:

字节流( 8位字节 )     字符流( 16位字节 )

3.按照角色:

节点流     处理流

【File类】

File类是java.io包下代表与平台无关的文件和目录,主要用于操作文件和目录。

File能新建、删除、重命名文件和目录,但File类不能访问文件内容本身,如果需要访问文件的内容本身,需要输入/输出流。

常用构造方法:

File(String pathname)
通过路径名创建一个新 File 实例。

File(URI uri)

通过将给定的 file的URI 路径名创建一个新的 File 实例。

【访问文件和目录】

[ 访问文件的相关方法 ]

String getName()    返回File对象的文件名

String getPath()      返回File对象对应的路径名

File getAbsoluteFile()      返回File对象的绝对路径

String getAbsolutePath() 返回File对象所对应的绝对路径名

String getParrent()  返回此File对象所对应目录的父目录名

boolean renameTo(File newName) 重命名此File对象所对应的文件或目录

[ 文件检测的方法 ]

boolean exists()  判断File对象所对应的文件或目录是否存在

boolean canWrite() 判断File对象所对应的文件或目录是否可写

boolean canRead() 判断File对象所对应的文件或目录是否可读

boolean isFile()         判断File对象所对应的是否是文件,而不是目录

boolean isDirectory() 判断File对象所对应的是否是目录,而不是文件

boolean isAbsolute()  判断File对象所对应的文件或目录是否是绝对路径

[ 获取文件的信息 ]

long lastModified()  返回文件的最后修改时间

long length()   返回文件内容的长度

[ 文件操作的方法 ]

boolean createNewFile() 新建一个File对象指定的新文件,成功返回true。(文件不存在新建,已存在覆盖)

boolean delete()  删除File对象所对应的文件或路径

static File createTempFile(String prefix,String suffix) 在默认的临时文件中创建一个临时的空文件,使用给定前缀、系统生成的随机数字、给定的后缀作为文件名。

static File createTempFile(String prefix,String suffix,File directory) 在directory所指定的目录中创建一个临时文件,其它同上。

void deleteOnExit() 注册一个删除钩子,指定当java虚拟机退出时,删除File对象所对应的文件和目录。

[ 目录操作的方法 ]

boolean mkdir() 创建一个File对象所对应的目录

String[] list()       列出File对象的所有子文件和路径名,返回String数组

String[] listFiles() 列出File对象的所有子文件和路径名,返回File数组

static File[] listRoots() 列出所有的根路径

【建立JavaIO工程的位置】

【工程Demo位置】

【测试1:获取文件名或路径名】

File file=new File(".");  //以当前路径创建一个File对象
System.out.println("文件名==="+file.getName()); //直接获取文件名
System.out.println("相对路径的父路径==="+file.getParent()); //获取相对路径的父路径,会引起错误
System.out.println("绝对路径==="+file.getAbsoluteFile()); //获取绝对路径
System.out.println("绝对路径的父路径==="+file.getAbsoluteFile().getParent()); //获取上一级路径

【运行结果】

【测试2:创建临时文件】

File file=new File(".");  //以当前路径创建一个File
File tmpFile=File.createTempFile("Higgin", ".txt" ,file); //在当前路径下建立一个临时文件,名为"Higgin.txt"
tmpFile.deleteOnExit(); //指定当JVM退出时 删除该文件

【使用debug运行结果】

运行到创建临时文件那一步:

运行到JVM退出删除那一步,文件被删除

【测试3:新建一个普通文件,并判断是否新建成功】

File newFile=new File(System.currentTimeMillis()+"");//以系统当前时间作为新文件名来创建文件
System.out.println("newFile对象是否存在111==="+newFile.exists());
newFile.createNewFile(); //以指定newFile对象来创建一个文件
System.out.println("newFile对象是否存在222==="+newFile.exists());

【运行结果】

【测试4:文件和目录重名的情况是否能创建成功】

File newFile=new File(System.currentTimeMillis()+"");//以系统当前时间作为新文件名来创建文件
System.out.println("newFile对象是否存在111==="+newFile.exists());
newFile.createNewFile(); //以指定newFile对象来创建一个文件
System.out.println("newFile对象是否存在222==="+newFile.exists());
boolean flag=newFile.mkdir(); //以newFile对象来创建一个目录,因为newFile已经存在,所以无法创建,该方法返回false
System.out.println("newFile.mkdir()创建目录是否成功:"+flag); //由于重名,所以失败

【运行结果】

【测试5:列出当前路径和系统根路径下的所有文件和路径】

File file=new File(".");  //以当前路径创建一个File对象
String[] fileList=file.list(); //使用list()方法列出当前路径下的所有文件和路径
System.out.println("=========当前路径下的所有文件和路径如下=========");
for(String fileName:fileList){
System.out.println(fileName);
} File[] roots=File.listRoots(); //静态方法列出所有磁盘的根路径
System.out.println("=========系统所有根路径如下=========");
for(File root:roots){
System.out.println(root);
}

【运行结果】

最新文章

  1. [转载]DBA的特质第一部分:技术
  2. linux如何修改文件或目录的权限(chmod)
  3. js 正则 以字母开头必须有 大小写字母数字组成 可以有“@"或 ”.“
  4. C头文件和源文件的连
  5. 黑马程序员——JAVA基础之List集合
  6. 【转】CSS中怎么让DIV居中
  7. gridview 绑定方法中带参数
  8. 两款Mac下的视频下载利器
  9. C# WPF 建立无边框(标题栏)的登录窗口
  10. 射频识别技术漫谈(23)——ISO15693的载波、调制与编码
  11. web前端利用HSTS(新的Web安全协议HTTP Strict Transport Security)漏洞的超级Cookie(HSTS Super Cookie)
  12. java数组、java.lang.String、java.util.Arrays、java.lang.Object的toString()方法和equals()方法详解
  13. STL源码剖析-vector
  14. Python积累三:object() take no object!
  15. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十二):链路追踪(Sleuth、Zipkin)
  16. Sketch webView方式插件开发技术总结
  17. 原生js仿jquery一些常用方法
  18. 第六周 可执行代码 以及 PSP 燃尽图 等等
  19. imperva 获取gti文档
  20. eclipse的debug技巧之一

热门文章

  1. CentOS6.5安装MySQL及完全卸载
  2. innobackupex 单脚本循环7天一全备6增备脚本更新
  3. HBase在京东的完善与创新
  4. Mac下移动硬盘不能粘贴
  5. C#-将控件动态添加到选项卡页tablepage
  6. BZOJ [ZJOI2008]泡泡堂BNB 贪心
  7. C# 网络编程之豆瓣OAuth2.0认证具体解释和遇到的各种问题及解决
  8. Android开发实例之多点触控程序
  9. 在artTemplate的标签中使用外部函数的方法
  10. [React Fundamentals] Development Environment Setup