一、File类
File类是java.io包中唯一对文件本身进行操作的类。它可以进行创建、删除文件等操作。
File类常用操作
(1)创建文件
可以使用 createNewFille() 创建一个新文件。
注意:
Windows 中使用反斜杠表示目录的分隔符""。
Linux 中使用正斜杠表示目录的分隔符"/"。
最好的做法是使用 File.separator 静态常量,可以根据所在操作系统选取对应的分隔符。
(2)删除文件
可以使用 delete() 删除一个文件。
一般删除文件前,最好先使用 exists() 判断一下文件是否存在。
(3)创建文件夹
可以使用 mkdir() 来创建文件夹,但是如果要创建的目录的父路径不存在,则无法创建成功。
如果要解决这个问题,可以使用 mkdirs(),当父路径不存在时,会连同上级目录都一并创建。
(4)列出指定目录全部文件
File中给出了两种列出文件夹内容的方法:
list(): 列出全部名称,返回一个字符串数组。
listFiles(): 列出完整的路径,返回一个File对象数组。
(5)删除目录
可以使用 delete() 来删除目录。
需要注意的是,如果这个目录不为空,直接用 delete() 删除会失败。
二、认识RandomAccessFile类
RandomAccessFile是Java提供的对文件内容的访问,既能够读取文件,也能够写文件;
RandomAccessFile支持随机访问文件,可以访问文件的任意位置。
基本用法
(1)打开文件,有两种打开模式-----“rw”(读写)、“r”(只读)
RandomAccessFile raf=new RandomAccessFile(file,“rw”);
RandomAccessFile能够随机读取文件的内容是因为存在一个指针,记录读取或者写入的位置,打开文件是pointer=0;
(2)写方法
写方法一次只能写入一个字节,写入后指针指向下一个位置
raf.write(int);//斜土的是int的后8位
(3)读方法
同样的读方法也是一次读取一个字节
int b=raf.read();
(4)文件读写完成后要关闭
raf.close();
三、字节流与字符流
操作流程
1.使用File类打开一个文件
2.通过字节流或者字符流的子类。指定输出的位置。
3.进行读/写操作
4.关闭输入/出
字节流与字符流
在java.io包中操作文件内容主要有两大类:字节流字符流。两大类分为输入和输出操作,在字节流中输出数据主要是OutputStream完成,输入使用InputStream,在字符流冲输出主要是使用Writer类完成,输入主要是Reader完成
字节流
字节流主要是操作byte类型数据,以byte数组为准,主要操作类是OutputStream和InputSream
字节输出流:OutputStream
字节输入流:InputStream
InputStream
常用方法
Public int available():得到输入文件的大小
Public void close():关闭输入流
Public int read(bytr []b):将内容读到数组中,同时返回读入的个数
InputStream是一个抽象类。要想实例化使用需要用子类FileInputStream;
InputStream output=null ;
Input=new FileInputStream(f);
OutputStream
常用方法
Public void close():关闭输出流
Public void flush():刷新缓冲区
Public void write(byte[] b):讲一个byte数组写入数据流
Public void write(byte[] b,int off,int len):将一个指定byte数组写入数据流
字符流
字符输出流:Writer
字符输入流:Reader
Writer
其本身也是抽象类 要想实现 使用FileWriter
常用方法
Public abstract void close():关闭输出流
Public void writer(String str):将字符串输出
Reader
其本身也是抽象类 要想实现 使用FileReader
常用方法
Public abstract void close():关闭输出流
Public int read():读取单个字符
Public int read(char[] buf):将内容读到字符组当中,返回读入的长度