递归
- 递归解决问题的思想
做递归要写一个方法
找到出口条件
找到规律
/**
* 做递归要写一个方法
* 返回值类型: int
* 参数列表: int n
* 出口条件:
* if(n== 1){return 1;}
*
* 规律:
* if (n != 1){return n * 方法名(n-1):}
*
* */
public static int jieCheng(int n) {
if (n == 1){
return 1;
}else {
return n * jieCheng(n - 1);
}
}
IO流概述
- IO流用来处理设备之间的数据传输
- 上传文件和下载文件
- Java对数据的操作是通过流的方式
- Java用于操作流的对象都在IO包中
IO流分类
按照数据流向
输入流 读取数据
输出流 写出数据
按照数据类型
字节流
字节输入流 读取数据 InputStream
字节输出流 写出数据 OutputStream
字符流
字符输入流 读取数据 Reader
字符输出流 写出数据 Writer
字节流写数据
FileOutputStream的构造方法
FileOutputStream(File file)
FileOutputStream(String name)
字节流读取数据
FileInputStream的构造方法
FileInputStream(File file)
FileInputStream(String name)
FileInputStream的成员方法
public int read():一次读取一个字节
public int read(byte[] b):一次读取一个字节数组
我们先来看下字节输入流操作步骤:
A:创建字节输入流对象
B:调用read()方法读取数据,并把数据显示在控制台
C:释放资源
字节流复制数据
数据源:从哪里来
a.txt – 读取数据 – FileInputStream
目的地:到哪里去
b.txt – 写数据 – FileOutputStream
字节缓冲流
字节流一次读写一个数组的速度明显比一次读写一个字节的速度快很多,这是加入了数组这样的缓冲区效果,java本身在设计的时候,也考虑到了这样的设计思想(装饰设计模式),所以提供了字节缓冲区流
这种类被称为:缓冲区类(高效类)
字节缓冲输出流
BufferedOutputStream
字节缓冲输入流
BufferedInputStream