1.字节流
1.输入流:InputStream()
1.子类:FileInputStream()
2.输出流:OutPutStream()
2.子类:FileOutPutStream()
3.操作流程
1.硬盘—输入流---->内存—输出流----->硬盘
2.代码示例
FileInputStream fis = new FileInputStream("aaa.txt");//创建输入流 关联硬盘上的aaa.txt
FileOutputStream fos = new FileOutputStream("bbb.txt");//创建输出流 关联硬盘上的bbb.txt
int len;
byte [] arr = new byte[1024*8]; //定义小数组 加快读写
while((len =fis.read(arr))!=-1) { //读取 判断
fos.write(arr,0,len); //写入
}
fis.close();//关流
fos.close(); //关流
}
4.带缓存区的输入输出流
1.BufferedInputStream
2.BufferedOutputStream
3.代码实列:
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("aaa.txt"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("bbb.txt"));
int len;
while((len=bis.read())!=-1) {
bos.write(len);
}
bis.close();
bos.close();
2.字符流
1.Reader–FileReader 字符输入流及其子类
1.readLine 读取一行 不含换行
2.newLine 跨平台输出"\r\n"
2.Writer–FileWriter 字符输出流及其子类
3.FileReader 和 FileWriter 的使用代码实列
FileReader fr = new FileReader("aaa.txt");
FileWriter fw = new FileWriter("bbb.txt");
int len ;
char [] arr = new char[1024*8];
while((len =fr.read(arr))!=-1) {
fw.write(arr,0,len);
}
fr.close();
fw.close();
4.BufferedReader 和 BufferedWriter (带缓冲区,加快读写 效率略低小数组)代码示例
FileReader fr = new FileReader("aaa.txt");
FileWriter fw = new FileWriter("bbb.txt");
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(fw);
int len ;
//char [] arr = new char[1024*8];
while((len =br.read())!=-1) {
bw.write(len);
}
br.close();
bw.close();
}
5.带指定编码表代码示例
InputStreamReader isr =
new InputStreamReader(new BufferedInputStream(new FileInputStream("aaa.txt")),"gbk");//以gbk读取
OutputStreamWriter osw =
new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream("bbb.txt")), "gbk");//以gbk写入
int len ;
//char [] arr = new char[1024*8];
while((len =isr.read())!=-1) {
osw.write(len);
}
isr.close();
osw.close();
序列流(SequenceInputStream:整合多个字节流)
1.整合两个字节流,输出,示例代码
FileInputStream fis1 = new FileInputStream("aaa.txt");
FileInputStream fis2 = new FileInputStream("aaa.txt");
SequenceInputStream sis = new SequenceInputStream(fis1, fis2);
FileOutputStream fos = new FileOutputStream("ccc.txt");
int len ;
while((len=sis.read())!=-1) {
fos.write(len);
}
sis.close();
fos.close();
2.整合多个字节流,输出,示例代码
FileInputStream fis1 = new FileInputStream("aaa.txt");
FileInputStream fis2 = new FileInputStream("bbb.txt");
FileInputStream fis3 = new FileInputStream("ccc.txt");
FileOutputStream fos = new FileOutputStream("ddd.txt");
Vector<FileInputStream> vt= new Vector<>();//创建集合
vt.add(fis1);
vt.add(fis2);
vt.add(fis3);
Enumeration<FileInputStream> en = vt.elements();//获取枚举的引用
SequenceInputStream sis = new SequenceInputStream(en);
int len;
while((len=sis.read())!=-1) {
fos.write(len);
}
sis.close();
fos.close();