字节输入流和字节输出流
字节输入流是InputStream是所有输入流的父类, 字节输出流是OutputStream是所有输出流的父类
文件字节输入流和文件输出流
文件字节输入流是FileIntputStream ,文件字节输出流是FileOutputStream
文件字节输入流
常用方法
//此处使用多态创建一个文件字节输入流
InputStream is = new FileInputStream(String path)
- 读取
//每调用一次,读取一个字节
is.read();
//用car存储读入的字节数字组
byte [] car = new byte[1024];
//读取数据用car存储
is.read(car)
- 关闭
//将该输入流关闭
is.close();
读取指定文件
public static void main(String[] args) throws IOException {
//创建文件输入流路径为"D://test,txt"
InputStream in = new FileInputStream("D://test.txt");
//用来存储读入的数据,内容一般用1024的倍数来存储
byte [] car = new byte[1024];
//定义长度,因为会读入1024个字节一般剩余的回事空格,因此需要len来知道读取多少数据
int len = -1;
//用循环读出数据
while(-1!=(len = in.read(car))){
System.out.println(new String(car,0,len));
}
is.close();
}
文件字节输出流
常用方法
//此处使用多态
OutputStream os = new FileoutputStream(String path);
- 写出
//写出一个字节
os.write();
//写出一个字节数组的数据
os.write(byte [] b);
- 刷出
//将流中的管道的数据全部加载到文件中
os.flush();
- 关闭
//关闭输出流资源
os.close();
写入指定文件夹
public static void main(String[] args) throws IOException {
OutputStream os = new FileOutputStream("D://lufei.txt");
InputStream is = new FileInputStream("D://test.txt");
byte [] car = new byte[1024];
int len = -1;
while(-1!=(len = is.read(car))){
os.write(car,0,len);
os.flush();
}
os.close();
}
字符输入流和字符输出流
字符输入流Reader,字符输出流Writer
文件字符输入流
常用方法
Reader rd = new FileReader(String path)
-
读入
//读入一个字符 rd.read(); //读入一个字符数组 rd.read(char [] car);
-
关闭
rd.close();
读入指定文件并输出
public static void main(String[] args) throws IOException {
Reader rd = new FileReader("D://lufei.txt");
char [] car = new char[1024];
int len = -1;
while(-1!=(len=rd.read(car))){
System.out.println(new String(car,0,len));
}
}
文件字符输出流
常用方法
Writer rt = new Filewriter(String path);
- 写出
//写出一个字符
rt.write();
//写出一个数组长度的数据
rt.write(char [] car);
- 刷出
rt.flush();
- 关闭
rt.close();
缓冲流
其为功能流加快文件读入写出的能力
常用方法
BufferedReader rd = new BuffererdReader(new FileReader());
BufferedWriter rt = new BuffererdWriter(new FileWriter());
新增方法
//读取一行
rd.readline();
//分隔符可以理解为换行
rt.newline();