io知识点总结第一篇
来源:互联网 发布:淘宝网佛经早晚课读本 编辑:程序博客网 时间:2024/05/20 12:50
(一)知识点小结:
1:递归(理解)
(1)方法定义中调用方法本身的现象。
(2)递归注意事项:
A:要有出口,否则就是死递归。
B:次数不能太多,否则内存溢出。
特殊事项:构造方法不能递归定义。
(3)案例:(面试可能见到)
A:递归求阶乘
B:递归求兔子问题(斐波那契数列)
C:递归遍历目录(带内容的目录)
D:递归删除目录(带内容的目录)
2:IO(掌握)
(1)IO就是在不同设备间传递数据。
(2)IO流分类:
A:流向
输入流 读取数据
输出流 写出数据
B:数据类型
字节流
字节输入流 InputStream
字节输出流 OutputStream
字符流
字符输入流 Reader
字符输出流 Writer
注意:
A:四个顶层类都是抽象类。
B:一般每个体系的流都是以基类作为后缀名。
什么时候使用谁?
如果文件能够通过记事本打开并读懂,就用字符流。
其他的全部使用字节流。
3:字节流(掌握)
InputStream
|--FileInputStream
|--BufferedInputStream
OutputStream
|--FileOutputStream
|--BufferedOutputSteam
掌握:(4种方式)
是否使用数组
是否使用高效
把c:\\a.jpg复制到d:\\b.jpg中。
(二)相关代码练习
1.递归的概念
/*
* 递归:
* 必须在函数内调用该函数本身
* Exception in thread "main" java.lang.StackOverflowError
* 递归方法必须有出口!(即必须指定方法的结束)
* 递归次数不能过多!
*/
public class Demo01_Recurrence {
static int number;
public static void main(String[] args) {
method();
}
public static void method() {
System.out.println("================================================="+number++);
if(number==100) {
return;
}
int thismethodnumber = number;
method();
System.out.println("我运行完毕了"+thismethodnumber);
}
}
2.递归代码练习;
package cn.itcast;
/*
* 使用递归计算斐波那契数列
*
* 第1项 第2项 第3项 第4项 第5项 第6项 第7项 ...
* 1 1 2 3 5 8 13 ...
*
* 规律:
* 本项的值 = 前一项的值 + 前前一项的值
* 出口:
* 当是第1项和第2项时,返回1
*/
public class Test2 {
public static void main(String[] args) {
System.out.println(method(7));
}
//求第N项的斐波那契数列值
public static int method(int number) {
//递归出口
if(number==1||number==2) {
return 1;
}
//递归调用
return method(number-1) + method(number-1-1);
}
}
(三)io的相关练习文件复制的两种方式 --一定要掌握的知识点
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 完成文件复制
*/
public class Demo06_copy {
public static void main(String[] args) throws IOException {
myCopy2();
}
//一次一个字节
public static void myCopy() throws IOException {
//创建流对象
FileInputStream fis = new FileInputStream("a.txt");
FileOutputStream fos = new FileOutputStream("b.txt");
//读入
//定义变量,用来记录本次读取到的字节本身
int b;
while((b=fis.read())!=-1) {
//写出
fos.write(b);
}
//关闭流
fos.close();
fis.close();
}
//一次一个字节数组
public static void myCopy2() throws IOException {
//创建流对象
FileInputStream fis = new FileInputStream("a.txt");
FileOutputStream fos = new FileOutputStream("b.txt");
//读入
//定义变量,用来存储本次读到的数据
byte[] bytes = new byte[1024];
//定义变量,用来记录本次读取到的字节个数
int len;
while((len=fis.read(bytes))!=-1) {
//写出
fos.write(bytes,0,len);
}
//关闭流
fos.close();
fis.close();
}
}
- io知识点总结第一篇
- io知识点总结第一篇
- IO知识点总结2
- IO流知识点总结
- IO流知识点总结
- Android知识点汇总--第一篇
- 总结之第一篇
- android总结第一篇
- 学习总结第一篇
- 前端第一篇总结
- IO流知识点总结01
- IO流知识点总结02
- Java IO流知识点总结
- JAVA知识点总结-13IO
- 黑马程序员—java技术blog—第一篇 IO概述及字节流总结
- linux设备驱动第一篇:基础知识点
- 黑马程序员--IO流(第一篇)
- java 第一篇 io 相关笔记
- Android Drawable系列(1):自定义背景以及注意事项
- Codeforces 574B Bear and Three Musketeers
- TestLink基本流程
- 创建安卓桌面快捷图标
- HDU——2010水仙花数
- io知识点总结第一篇
- linux-samba服务搭建
- 关于项目架构资料整理
- HTML文件中文打开乱码的问题
- SimpleAdapter适配的ListView(不常用)
- C语言中的文本流与二进制流的区别
- 图像分割——掩膜法
- 第一个android客户端笔记
- 点阵字模显示