知识相关:
什么是计算机文件?
计算机文件(或称文件、电脑档案、档案),是存储在某种长期储存设备上的一段数据流。所谓“长期储存设备”一般指硬盘、U盘、光盘等。其特点是所存信息可以长期、多次 使用,不会因为断电而消失。计算机存储介质
硬盘:容量非常的大,速度一般,而且可以实现永久存储,电脑程序就存在那里
内存:容量比较小,速度快,是CPU工作的地方,对系统性能影响很大,CPU工作的时候就会把硬盘中要运行的程序先调到内存中才能处理
缓存:容量最小,但速度最快,为了协调CPU的高速度和内存的相对低速度的缓冲区域,一般在CUP上
java.io.File类
File类是java中提供给程序操作硬盘文件的方式,可以来获取当前关联硬盘文件的相关属性,包括文件名、路径、大小、修改日期等。
注意:File类不能直接读写文件中的内容,只能查看和操作文件本身
File类常用构造方法.
JDK查询:
file的常用方法:
boolean exists() |
判断文件是否存在,存在返回true,否则返回false |
boolean isFile() |
判断是否为文件,是文件返回true,否则返回false |
boolean isDirectory() |
判断是否为目录,是目录返回true,否则返回false |
String getName() |
获得文件的名称 |
String getAbsolutePath() |
获得文件的绝对路径 |
long length() |
获得文件的长度(字节数) |
boolean createNewFile() throws IOException |
创建新文件,创建成功返回true,否则返回false,有可能抛出IOException异常,必须捕捉 |
boolean delete() |
删除文件,删除成功返回true,否则返回false |
File[] listFiles() |
返回文件夹内的子文件与子文件夹的数组 |
file对象关联地址,流关联file对象进行读写操作
I/O概念
什么是I/O?
硬件层面:I/O(input/output),即输入/输出。每个设备都会有一个专用的I/O地址,用来处理自己设备的输入输出信息。比如电脑设备输入端口为键盘和鼠标,输出端口为 显示屏。
软件层面:I/O即不同存储机制上的数据的读入写出。比如内存读写硬盘中的数据或者U盘中的数据。
什么是I/O流?
流是指一定的介质按照一定的方向流动的行为,在软件开发中指的是存储的数据的流动过程,这个数据源可以是硬盘中的文件、内存或者是网络中的某个URL
I/O流专门用于软件开发层面的理解,把数据从一个存储介质写出(output)或者读取(input)到另外一个存储介质的过程表示为I/O流的模型
流根据传输数据的类型分类
字节流:读取和写入数据的时候,以字节为最小单元进行读取和写入操作
字符流:读取和写入数据的时候,以字符为最小单元进行读取和写入操作,因为每个字符根据编码不同,所占用的字节个数不同,每次读取和写入字符时候,是不定长的字节 个数写入读取。
流根据传输数据的方向分类
输入流 ( 将硬盘的数据写入内存)
输出流 (将内存的数据写入硬盘)
上图中的末枝类都是抽象类,下为实用的类
FileInputStream的构造方法
文件输入流基本操作方法
以上为输入流,下面是输出流
字节流-输出流
FileInputStream构造方法
流用完后需要调用close方法节约资源
以上为字节流输入输出下面是字符流相关
字符输入流的抽象基类为:Reader
FileReader构造方法
文件字符输入流基本操作
符输出流的抽象基类为:Writer
FileWriter构造方法
文件字符输出流基本操作