FileInputStream 文件字节输入流
构造方法:
FileInputStream(File file) 通过打开与实际文件的连接来创建一个 FileInputStream
FileInputStream(String name)通过打开与实际文件的连接来创建一个 FileInputStream
常用方法:
void close()关闭此文件输入流并释放与流相关联的任何系统资源。
int read() 从该输入流读取一个字节的数据。
int read(byte[] b) 从该输入流读取最多 b.length个字节的数据到一个字节数组
package io.test;
import java.io.FileInputStream;
import java.io.IOException;
public class Demo01 {
public static void main(String[] args) throws IOException {
mother();
}
private static void mother() throws IOException {
FileInputStream fis=new FileInputStream("aaa.txt");
//一个个字节来读取
/*int len=0;
while ((len=fis.read())!=-1){
System.out.println((char)len);
}*/
//通过byte[]来读取
int len=0;
byte[] b=new byte[10]; //一般为1024 就是1kb
while ((len=fis.read(b))!=-1){
System.out.println(new String(b,0,len));
}
//关闭资源
fis.close();
}
}
FileReader文件字符输入流
构造方法:
FileReader(File file) 创建一个新的 FileReader ,给出 File读取
FileReader(String fileName) 创建一个新的 FileReader ,给定要读取的文件的名称。
常用方法:
int read() 读一个字符
int read(char[] cbuf) 将字符读入数组。
void close() 关闭流并释放与之相关联的任何系统资源。
package io.test;
import java.io.FileReader;
import java.io.IOException;
public class Demo02 {
public static void main(String[] args) throws IOException {
mother();
}
private static void mother() throws IOException {
FileReader fr=new FileReader("aaa.txt");
//一个个字符读取出来
/*int len=0;
while((len=fr.read())!=-1){
System.out.println((char)len);
}*/
//通过char[]来读取
int len=0;
char[] chars=new char[10];
while ((len=fr.read(chars))!=-1){
System.out.println(new String(chars,0,len));
}
fr.close();
}
}
FileWriter 文件字符输出流
构造方法:
FileWriter(File file) 给一个File对象构造一个FileWriter对象。
FileWriter(File file, boolean append)给一个File对象构造一个FileWriter对象。
FileWriter(String fileName)构造一个给定文件名的FileWriter对象。
FileWriter(String fileName, boolean append) 构造一个FileWriter对象,给出一个带有布尔值的文件名,表示是否附加写入的数据。
常用方法:
void close() 关闭流,先刷新。
void flush() 刷新流。
voidwrite(char[] cbuf) 写入一个字符数组。
void write(char[] cbuf, int off, int len)写入字符数组的一部分。
void write(int c)写一个字符
void write(String str) 写一个字符串
package io.test;
import java.io.FileWriter;
import java.io.IOException;
public class Demo03 {
public static void main(String[] args) throws IOException {
mother();
}
private static void mother() throws IOException {
FileWriter fw=new FileWriter("bbb.txt");
//一个个写出字符
fw.write('a');
fw.write('b');
fw.write("你好啊");
fw.write(new char[]{'A','B','C'});
fw.flush();
fw.close();
}
}
注意:使用字符输出流的writer方法,会先把数据写入到内存缓冲区(字符转换为字节的过程),所以之后要使用flush方法或close方法把数据刷新到文件 中
flush与close的区别
flush:刷新缓冲区,流对象可以继续使用
close:先刷新缓冲区,然后通知系统释放资源,流对象不可以再使用了