文件操作小结
java.io包提供大量的流类,其中InputStream,OutputStream,Reader和Writer类是最重要的四个抽象类。
InputStream类及其子类对象为字节输入流
OutputStream类及其子类对象为字节输出流
Reader类及其子类对象为字符输入流
Writer类及其子类对象字符输出流
字节流即以字节为单位传输的流
字符流即以字符为单位传输的流
文件字节流FileInputStream和FileOutputStream
-
文件字节流指的是以字节为单位操作文件
-
FileInputStream用来读取文件
构造方法 说明 FileInputStream(String name); 通过文件名创建输入流 FileInputStrea(File file); 通过文件创建输入流 方法 作用 int read() 输入流调用该方法从源中读取单个字节的数据,该方法返回字节值(0~255之间的一个整数)。如果未读出就返回-1。 int read(byte[] b) 输入流调用该方法从源中试图读取b.length[]个字节到字节数组b中,返回实际读取的字节数目。如果到达文件的末尾,则返回-1。 int read(byte[] b,int off,int len) 输入流调用该方法从源中试图读取len个字节到字节数组b中,并返回实际读取的字节数目。如果到达文件末尾,则返回-1。参数off指定从字节数组的某个位置开始存放读取的数据 void close() 关闭输入流 FileInputStream流顺序的读取文件,只要不关闭流,每次调用read方法就顺序的读取文件源中其余的内容,直到读到源的末尾或流被关闭(调用close方法,虽然程序结束时会自动关闭所有打开的流,但是显式的关闭任何打开的流仍是一个好习惯)
-
FileOutputStream用来写入文件
构造方法 说明 FileOutputStrea(String name); 通过文件名创建输出流 FileOutputStream(File file); 通过文件创建输出流 FileOutputStream(String name,boolean append); 通过文件名创建输出流,创建时指定是否追加写入(append=true or false) FileOutputStream(File file,boolean append); 通过文件创建输出流,创建时指定是否追加写入(append=true or false) 注意:
1.FileOutpueStream默认apend参数为false,即默认覆盖目标文件
2.FileOutputStream创建时当目标文件不存在时,会创建目标文件
方法 作用 void write(int n) 输出流调用该方法向目的地写入单个字节 void write(byte b[]) 输出流调用该方法向目的地写入一个字节数组 void write(byte b[],int off,int len) 输出流调用该方法从指定字节数组中的off偏移量处取出len个字节写到目的地 void close() 关闭输出流
文件字符流FileReader和FileWriter
-
文件字节流即以字节为单位操作文件
-
FileReader用来读取文件
构造方法 FileReader(String filename) FileReader(File filename) -
FileWriter用来写入文件
构造方法 FileWriter(String filename) FileWriter(File file) FileWriter(String filename,boolean append) FileWriter(File file,boolean append)