------- android培训、java培训、期待与您交流! ----------
递归:
1.递归是基于:方法可以自己调用自己;2.注意:
1).一定要有出口,否则就是死递归;
2).次数不能太多,否则堆栈溢出;
3).构造方法不能递归调用;
3.重点练习:
1).递归输出指定目录下所有的java文件的绝对路径案例
2).递归删除带内容的目录案例
IO流:
1.IO流概念:1.IO流:InputStream和OutputStream
2.流:是有方向的,线性的;
io流的分类:
一:字节流:
1.类层次结构:OutputStream:
|--FileOutputStream:
|--FilterOutputStream
|--BufferedOutputStream:
InputStream:
|--FileInputStream:
|--FilterInputStream
|--BufferedInputStream:
2.写入的方法:
write(int n):写入一个字节:
write(byte[] byteArray):写入一个字节数组;
3.读取的方法:
int read():读取一个字节:
int read(byte[] byteArray):读取一个字节数组;
4.字节流可以对:二进制文件和文本文件进行读写。
5.当读写二进制文件时:首选带缓冲的字节流;
当读写文本文件时:如果不需要显示,也可以选择字节流。通常
使用带缓冲的字符流。
二:字符流:
1.类层次结构:Writer:
|--OutputStreamWriter:
|--FileWriter:
|--BufferedWriter:
Reader:
|--InputStreamReader:
|--FileReader:
|--BufferedReader:
2.写入的方法:
基本字符流,和缓冲流都具有的:
write(int n):写入一个字符:
write(char[] charArray):写入一个字符数组;
write(char[] charArray,int off,int len):写入字符数组的一部分;
write(String s):写入一个字符;
write(String s,int off,int len):写入一个字符串的一部分;
缓冲流特有的:
BufferedWriter:
newLine();
BufferedReader:
String s readLine();
3.当需要对文本文件进行读写,显示:首选使用带缓冲的字符流;
附上一段IO流递归模式复制文件夹的代码:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
File f1=new File("D:\\1.avi");
File f2=new File("E:\\zifu.avi");
File f3=new File("E:\\zijie.avi");
BufferedInputStream bfin=new BufferedInputStream(new FileInputStream(f1));
BufferedOutputStream bfout=new BufferedOutputStream(new FileOutputStream(f2));
byte[] bytearr=new byte[1024];
int x=0;
while((x=bfin.read(bytearr))!=-1){
bfout.write(bytearr,0,x);
}
bfin.close();
bfout.close();
BufferedReader bfr=new BufferedReader(new FileReader(f1));
BufferedWriter bfw=new BufferedWriter(new FileWriter(f3));
char[] chararr=new char[1024];
int s=0;
while((s=bfr.read(chararr))!=-1){
bfw.write(chararr, 0, s);
}
bfr.close();
bfw.close();
}
}