当前课程知识点:Java程序设计 > 第五章 输入输出 > 5.3.5-File类 > File类
大家好
欢迎回来继续学习
Java语言程序设计
这一节我们来学习File类
File是什么呢
在这个File类中
存储一些与文件相关的信息
并且提供了管理文件的一些操作
File类提供了
创建删除文件的功能
还有重新命名文件
以及判断文件的读写权限
判断文件是否存在
还有就是可以设置
和查询文件最新修改时间
我们在构造文件流的时候
还可以使用File类的对象
作为参数
接下来我们就通过一个例题
看一下怎么使用这个File类
现在我们就来尝试
用File里面提供的方法
来对文件进行操作
首先我们创建一个
Hello.txt的文件
那么创建之前判断一下
如果这个文件
同名文件已经存在了
那么我们就采用
删除旧文件的方法
不存在就直接创建新的
当然这个直接删除旧文件
大家也会觉得
那不是也没什么效果吗
我们简单做一个演示
大家也可以回去
修改补充一下这个程序
不要说文件存在你就直接删除
如果文件存在的话
你给个信息问一下用户
这个文件存在要删除吗
然后你再决定是删除
还是请用户输入新文件名
好
现在我们就用
这个特别简单的逻辑
来看一下File是怎么用的
现在我们用这个文件名Hello.txt
这个字符串来构造一个File对象
File不是文件
它是用来存放和处理
存放文件信息处理文件的
那么我们就可以
调用它的exsist方法
判断这个文件是否存在
如果文件存在呢
就调用delete方法删除它
好
那么文件如果不存在
那就直接创建文件
调用creatNewFile
这样就创建了一个空文件
那这个过程中有可能产生异常的
所以也要放在try里面
后面有catch来捕获异常
我们运行这个程序的时候
由于在以前的例子中已经创建过Hello.txt这个文件了
所以第一次运行
就是删除了这个文件
然后我们再次运行这个程序
又创建了一个
同名的这样的空文件
实际上在我们试图打开文件之前
都可以使用
这个File类的isFile方法
来确定这个File对象
它代表的是否是一个文件
也许它代表一个目录呢
因为File类的对象
既可以表示一个文件
也可以用它来存放
目录信息表示一个目录
那还有就是用exists方法来判断
文件是不是存在
或者这个目录的路径是不是存在
然后接下来下一步
好采取正确的操作
我们在前面的部分
曾经学过怎么样去复制一个文件
但是当时大家有没有点疑问呢
我将一个文件复制
到目标文件中去
那么那个目标文件
原来是不是会有同名文件存在呢
如果已经有同名文件存在了
我就直接拿这个名字
作为目标文件名去复制
那会不会把原来的文件冲掉了呢
那么这个复制的源
是不是存在呢
你拿它当源去做复制
如果说用户给的文件名给错了
这个文件不存在
那又会发生什么呢
那不就发生异常了吗
现在我们对这个
复制文件的功能做一点点改进
在复制之前先判断一下
相关的文件名它是否
已经对应着有文件存在了
这里就要用到File
现在我们就可以来改进一下
刚才的文件复制程序了
不要总是等到要打开的文件
找不到才去让系统的方法
去自动抛出异常
然后我们再去捕获异常
这样后处理
可以事先就判断
用这个exist方法就可以判断
你要打开的文件存在不存在
当文件都存在的情况下
我们再来打开
否则给用户一个提示说退出
或者是让他重新输入都可以
在文件存在的情况下
打开文件构造输入流输出流
然后进行复制
这个跟刚才例子中都是一样的了
这一节我们学习了
用来表示文件信息
和对文件进行管理的File类
这一节内容就是这些
-1.0-导学
--1.0-导学
-1.1-Java与面向对象程序设计简介
--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介
-1.2-基本数据类型与表达式
-第一章 Java语言基础知识--1.2-基本数据类型与表达式
-1.3-数组
--1.3.1-数组
-第一章 Java语言基础知识--1.3-数组
-1.4-算法的流程控制
--第一章 Java语言基础知识--1.4-算法的流程控制
-1.5-第一章小结
-第一章编程练习题
-课件
--外部链接
-Java环境配置、Eclipse使用、Helloworld程序详解
--使用eclipse建立Java项目、编写和运行Java程序
-Java数据类型
--Java整数类型
--Java浮点类型
--数据类型实战
--数据类型转换
--Java强制类型转换精度损失示例与表达式中的数据类型转换
-Java数组
-Java变量
--Java的变量
-命令行参数
--命令行参数的介绍
-2.0-导学
--2.0-导学
-2.1-面向对象方法的特性
--第二章 类与对象--2.1-面向对象方法的特性
-2.2-1-类声明与对象创建
--第二章 类与对象--2.2-1-类声明与对象创建
-2.2-2-数据成员
--第二章 类与对象--2.2-2-数据成员
-2.2-3-方法成员
--第二章 类与对象--2.2-3-方法成员
-2.2-4-包
--2.2-4-包
--第二章 类与对象--2.2-4-包
-2.2-5-类的访问权限控制
--第二章 类与对象--2.2-5-类的访问权限控制
-2.3-1-对象初始化
--第二章 类与对象--2.3-1-对象初始化
-2.3-2-内存回收
--第二章 类与对象--2.3-2-内存回收
-2.4-枚举类
--2.4-枚举类
--第二章 类与对象--2.4-枚举类
-2.5-应用举例
--2.5-应用举例
-2.6-第2章小结
-第二章编程练习题
-课件
--第二章课件
-3.0-导学
--3.0-导学
-3.1.1-3.1.2-类继承的概念和语法
--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法
-3.1.3-隐藏和覆盖
--第三章 类的重用--3.1.3-隐藏和覆盖
-3.2-Object 类
--第三章 类的重用--3.2-Object 类
-3.3-终结类与终结方法
--第三章 类的重用--3.3-终结类与终结方法
-3.4-抽象类
--3.4-抽象类
--第三章 类的重用--3.4-抽象类
-3.5-泛型
--3.5-泛型
--第三章 类的重用--3.5-泛型
-3.6-类的组合
--3.6-类的组合
-3.7-小结
--3.7-小结
-第三章编程练习题
-课件
--课件
-4.0-导学
--导学
-4.1-接口
--接口
--第四章 接口与多态--4.1-接口
-4.2.1-4.2.2-类型转换
--类型转换
--第四章 接口与多态--4.2.1-4.2.2-类型转换
-4.2.3-方法的查找
--方法的查找
--第四章 接口与多态--4.2.3-方法的查找
-4.3-多态的概念
--多态的概念
--第四章 接口与多态--4.3-多态的概念
-4.4-多态的应用举例
--多态的应用举例
--第四章 接口与多态--4.4-多态的应用举例
-4.5-构造方法与多态性
--构造方法和多态性
--第四章 接口与多态--4.5-构造方法与多态性
-4.6-本章小结
--本章小结
-第四章编程作业
-课件
--课件
-5.0-导学
--5.0-导学
-5.1.1-5.1.2-异常处理的概念
--第五章 输入输出--5.1.1-5.1.2-异常处理的概念
-5.1.3-5.1.5-异常的处理
--第五章 输入输出--5.1.3-5.1.5-异常的处理
-5.2-输入输出流的概念
--输入输出流的概念
--第五章 输入输出--5.2-输入输出流的概念
-5.3.1-写文本文件
--写文本文件
--第五章 输入输出--5.3.1-写文本文件
-5.3.2-读文本文件
--读文本文件
--第五章 输入输出--5.3.2-读文本文件
-5.3.3-写二进制文件
--写二进制文件
--第五章 输入输出--5.3.3-写二进制文件
-5.3.4-读二进制文件
--读二进制文件
-5.3.5-File类
--File类
-5.3.6-处理压缩文件
--处理压缩文件
-5.3.7-对象序列化
--对象序列化
-5.3.8-随机文件读写
--随机文件读写
-5.4-本章小结
--本章小结
-课件
--课件
-6.0-导学
--导学
-6.1-Java集合框架介绍
--第六章 对象群体的组织--6.1-Java集合框架介绍
-6.2-主要接口及常用的实现类
--第六章 对象群体的组织--6.2-主要接口及常用的实现类
-6.3-常用算法
--常用算法
-6.4-数组实用方法
-6.5-基于动态数组的类型(Vector, ArrayList)
--基于动态数组的类型(Vector, ArrayList)
-6.6-遍历Collection
-6.7-Map接口及其实现
-6.8-第6章小结
--第6章小结
-课件
--课件
-7.0-导学
--导学
-7.1-绘图
--绘图
-7.2-Swing基础
--Swing基础
-7.3-Swing的层次
--Swing的层次
-7.4-布局管理
--布局管理
-7.5-内部类
--内部类
-7.6-事件处理的基本概念
-7.7-事件派发机制
--事件派发机制
-7.8-顶层容器
--7.8-顶层容器
-7.9-中间层容器(一)
-7.10-中间层容器(二)
-7.11-原子组件(一)
-7.12-原子组件(二)
-7.13-原子组件(三)
-7.14-其它Swing特性
-7.15-第7章小结
-课件
--课件