File类
创建File对象的语法
File file=new File(String pathName);
pathName 表示所指向的文件路径名
注意 在Windows中,文件路径名中的分隔符可以用正斜杠“/”,如“C:/test.txt”,也可以用反斜杠“\”,但必须写成“\\”,其中第一个表示转义符,如“C:\\test.txt”
File对象是java.io 包中引用磁盘文件的唯一对象。
File类的常用方法
方法 | 说明 |
boolean exists() | 判断文件或目录是否存在 |
boolean isFile() | 判断是否是文件 |
boolean isDirectory() | 判断是否是目录 |
String getPath() | 返回此对象表示的文件的相对路径名 |
String getAbsolutePath() | 返回此对象表示的文件的绝对路径名 |
String getName() | 返回此对象表示的文件或目录的名称 |
boolean delete() | 删除此对象指定的文件或目录 |
boolean createNewFile() | 创建指定名称的空文件,不创建文件夹 |
long length() | 返回文件的长度,单位为字节,若不存在返回OL |
Java的流
流,是指一连串流动的字符,是以先进先出的方式发送和接受数据的通道
流的分类
字节流
字节输入流类:FileInputStream
FileInputStream:在实际应用中通常使用InputStream的子类FileInputStream类来实现文件的读取,此类用于从本地文件系统中读取文件内容。
构造方法:
File file=new File(“C:\\test.txt”);
InputStream fileObject=new FileInputStream(file); 或
InputStream in=new FileInputStream(“C:\\test.txt”);
方法 | 说明 |
int read() | 读取一个字节数据 |
int read(byte[] b) | 将数据读取到字节数组中 |
int read(byte[] b,int off,int len) | 从输入流中读取最多len长度的字节,保存到字节数组b中,保存位置从off开始 |
void close() | 关闭此文件输入流并释放与该流关联的所有系统资源 |
int available() | 返回输入流读取的估计字节数 |
字节输出流类:FileOutputStream
构造方法:
FileOutputStream(File file):File file=new File(“C:\\test.txt”);FileOutputStream fileObject=new FileOutputStream(file);
FileOutputStream(String name):FileOutputStream fos=new FileOutputStream(“C:\\test.txt”);
FileOutputStream(String name,boolean append):append表示是否在文件末尾添加数据,若设置为true,则在文件末尾添加数据。FileOutputStream fos=newFileOutputStream(“C:\\test.txt”,true);
方法 | 说明 |
void write(int c) | 写入一字节数据 |
void write(byte[] b) | 写入数组b的所有字节 |
void write(byte[] b,int off,int len) | 将指定b数组中从偏移量off开始的len个字节写入此文件输出流。 |
void close() | 关闭输出流 |
二进制文件的读写
DataInputStream:该类提供一些基于多字节读取方法,从而可以读取基本数据类型的数据。
构造方法:
DataInputStream(InputStream in):使用指定的底层InputStream创建一个DataInputStream。
DataOutputStream(OutputStream out):创建一个新的数据输出流,将数据写入指定基础输出流。
字符流
FileReader:用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。
构造方法:
FileReader(File file):在给定从中读取数据的File的情况下创建一个新的FileReader。
FileReader(String fileName):在给定从中读取数据的文件名的情况下创建一个新的FileReader。
Reader fr=new FileReader(“C:\\test.txt”);
BufferedReader类是Reader类的子类,为Reader对象添加字符缓冲器,为数据输入分配内存存储空间,存取数据更为有效。
构造方法:
BufferedReader(Reader in):创建一个使用默认大小输入缓冲区的缓冲字符输入流。
BufferedReader(Reader in,int sz):创建一个使用指定大小输入缓冲区的缓冲字符输入流。
Read fr=new FileReader(“C:\\test.txt”);
BufferReader br=new BufferedReader(ft,1024);
常用方法
方法 | 说明 |
int read() | 从输入流中读取单个字符 |
int read(byte[]c) | 从输入流中读取c.length长度的字符,保存到字符数组c中,返回实际读取的字符数 |
int read(char[] cbuf,int off,int len) | 从输入流中读取c.length长度的字符,保存到字符数组c中,保存位置从off位置开始,返回实际读取的字符长度 |
void close() | 关闭该流并释放与之关联的所有资源 |
long skip(long n) | 跳过字符 |
String readLine() | 从输入流中读取一行字符,BufferedReader的方法 |
FileWriter:用来写入字符文件的便捷类,可用于写入字符流。
构造方法:
FileWriter(File file):根据给定的File对象构造一个FileWriter对象。
FileWriter(String filename):根据给定的文件名构造一个FileWriter对象。
FileWriter fw=new FileWriter(“C:\\test.txt”);
BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
FileWriter fw=new FileWriter(“C:\\test.txt”);
BufferedWriter bw=new BufferedWriter(fw);
常用方法
方法 | 说明 |
write(String str) | 将str字符串里包含的字符输出到指定的输出流中 |
void write(String str,int off,int len) | 将str字符串里从off位置开始长度为len的字符输出到输出流中 |
void close() | 关闭输出流 |
void flush() | 刷新输出流 |
newLine() | 插入一个换行符,BufferedWriter的方法 |