递归_总结 递归 (1)方法定义中调用方法本身的现象。 举例:老和尚给小和尚讲故事,我们学编程。 (2)递归的注意事项: A:一定要有出口,否则死递归。 B:次数不能过多,否则内存溢出。 *****构造方法不能递归调用***** (3)案例:(面试可能会有,今天作业题) A:递归求8的阶乘 B:递归求数列第二十项 需求:用递归求下列数列的第二十项的值: 1,1,2,4,7,13,24... C:递归遍历指定目录(你们写Java代码的目录)的文件绝对路径 D:递归删除带内容的目录(把你们写Java代码的目录复制一份来练习删除) 字符流总结 IO流(掌握) (1)IO流的分类: A:字节流 字节输入流 InputStream 字节输出流 OutputStream B:字符流 字符输入流 Reader --- FileReader 字符输出流 Writer --- FileReader
(2)FileWriter写入数据 步骤: A:创建字符输出流对象 B:调用写入数据方法,并刷新缓冲区 C:释放资源 代码体现: FileWriter fw = new FileWriter("a.txt"); fw.write("hello,io"); fw.flush(); fw.close(); 问题? A:创建字符输出流对象做了几件事情? a:创建字符输出流对象 b:调用对象的写入数据方法,并刷新缓冲区 c:释放资源 B:写数据完毕后,为什么要刷新? C:为什么要close()? 1:让流对象变成垃圾 2:通知系统去释放和文件相关的资源 D:flush()和close()的区别? flush():只刷新缓冲区,流对象还可以继续使用。 close():先刷新缓冲区,在关闭流对象。流对象不可以继续被使用。 E:怎么实现数据换行? 给出换行符 windows:\r\n linu:\n mac:\r F:怎么实现数据追加写入? 构造时用带两个参数的 public FileWriter(String fileName,true){} (3)FileReader读取数据 步骤: A:创建字符输入流对象 B:调用读取数据方法,并显示 C:释放资源 代码体现: FileReader fr = new FileReader("a.txt"); //方式1 //一次读取一个字符 int ch = 0; while((ch=fr.read())!=-1) { System.out.print((char)ch); } //方式2 //一次读取一个字符数组 char[] chs = new char[1024]; int len = 0; while((len=fr.read(chs))!=-1) { System.out.print(new String(chs,0,len)); } fr.close();
|