一、File类:
1).java.io.File(类):它封装了一个文件/目录的"路径",它里面包含了一些方法,可以对这个路径的文件/目录做一些操作:
例如:创建文件/目录、删除文件/目录、获取文件/目录的一些属性信息。
但是:它不能读写文件内容!!!!!
读写文件内容用:IO流
2).File类的构造方法:
1).File(String pathname) 通过将给定的路径名的字符串转换成一个抽象路径名创建一个新的 File实例。 【常用】
2).File(String parent, String child) 创建从父路径名的字符串和一个孩子的一个新的 File实例文件。
3).File(File parent, String child) 创建从一个家长的抽象路径名和一个孩子的路径字符串的新 File实例。
注意:构造时,文件可以不存在,后期可以通过此File对象的一些方法来判断这个路径表示的文件/目录是否存在。
3).绝对路径:带盘符的路径
相对路径:不带盘符的路径——从项目根目录下开始找。
4).常用方法:
a).获取相关的方法
1).public String getAbsolutePath() :返回此File的绝对路径名字符串。
2).public String getPath() :返回构造路径。
3).public String getName() :返回由此File表示的文件或目录的名称。
4).public long length() :返回由此File表示的文件的大小。 不能获取目录的大小。单位:字节
b).判断相关的方法
5).public boolean exists() :此File表示的文件或目录是否实际存在。
6).public boolean isDirectory() :此File表示的是否为目录。
7).public boolean isFile() :此File表示的是否为文件。
c).创建删除相关的方法
8).public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
9).public boolean delete() :删除由此File表示的文件或空目录。
10).public boolean mkdir() :创建由此File表示的目录。创建单级目录
11).public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。创建多级目录
d).目录遍历的相关方法
12).public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录的名字。
13).public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。
5).练习:找出一个单级目录下的所有.java文件。
二、字节流:
1).IO流的概念:
I:Input(输入)——将外部的数据(磁盘、网络)读取到内存。也称作:读取
O:Output(输出)——将内存的数据写入到外部(磁盘、网络)。也称作:写入
流:类似于水流,线性的,有方向的。
2).IO流作用:读写文件的数据的。
3).IO流是统称,它包含了很多的"IO流类",这些类形成了一些分类,和体系结构:
A).字节流:以字节的形式读、写文件。可以读、写任何文件(纯文本文件、视频、音频文件、图像...),是Java中最底层,最基本的流。
1).输出流:OutputStream(抽象类)
1).write(int b):输出一个字节;
2).write(byte[] bytes):输出多个字节(一个字节数组)。
3).write(byte[] bytes,int offset,int len):输出一个字节数组的一部分。
输出一个换行:
write("\r\n".getBytes());
4).close():关闭流
|--FileOutputStream(子类)
1).构造方法:
1).FileOutputStream(String name) 创建一个文件输出流,用指定的名称写入文件。【覆盖写】
2).FileOutputStream(String name, boolean append) 创建一个文件输出流,用指定的名称写入文件。
3).FileOutputStream(File file) 创建一个文件输出流写入指定的 File对象表示的文件。 【覆盖写】
4).FileOutputStream(File file, boolean append) 创建一个文件输出流写入指定的 File对象表示的文件。
注意:
1).Java中所有的输出流,构造时,文件都可以不存在,会自动创建一个。
2).所有的IO流,都必须构造在一个"文件上",不能构造在一个已有的目录上。
2).输入流:InputStream(抽象类)
1).public int read():读取一个字节,返回的是:字节的编码【效率低】
2).public int read(byte[] bytes):读取多个字节,存储到参数数组中。【效率高】
|--FileInputStream(子类)
1).构造方法:
1).FileInputStream(File file) 打开一个连接到一个实际的文件创建一个 FileInputStream,文件在文件系统的 File对象 file命名。
2).FileInputStream(String name) 打开一个连接到一个实际的文件创建一个 FileInputStream,文件由文件系统中的路径名 name命名。
注意:
1).Java中所有的输入流,构造时,文件必须存在,否则抛出异常。
3).案例:文件复制:
1).构造一个到源文件的:输入流;
2).构造一个到目标文件的:输出流: