1. 字节缓冲流
1.1 字节缓冲流构造方法【应用】
- 字节缓冲流介绍
- IBufferOutputStream:该类实现缓冲 输出流。通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用。
- IBufferedlnputStream:创建BufferedInputStream将创建一个内部缓冲区数组。当从流中读取或跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次很多字节
- 构造方法
方法名 | 说明 |
---|
BufferOutputStream(OutputStream out) | 创建字节缓冲输出流对象 |
BufferedlnputStream(InputStream in) | 创建字节缓冲输入流对象 |
public class BufferStreamDemo{
public sattic void main(String[] args) throws IOException {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("muByteStream\\bos.txt"));
bos.write("hello\r\n".getBytes());
bos.write("world\r\n".getBytes());
bos.close();
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("myByteStream\\bos.txt"));
int by;
while((by =bis.rea())!=-1) {
System.out.print((char)by);
}
byte[] bys = new byte[1024];
int len;
while ((len = bis.read())!=-1) {
System.out.print(new String(bys,o,len));
}
bis.close();
}
}
1.2 字节流复制视频【应用】
- 案例需求
把"E:\JAVASE\java.avi"复制到模块目录下的“java.avi” - 实现步骤
- 根据数据源创建字节流输入流对象
- 根据目的地址创建字节输出流对象
- 读写数据,复制视频
- 释放资源
- 代码实现
public class CopyAviDemo {
public static void main(String[] args) throws IOException {
long startTime = System.currentTimeMillis();
method1();
method2();
method3();
method4();
long endTime = System.currentTimeMillis();
System.out.println("共耗时:"+(endTime-StartTime)+"毫秒");
}
public static void method1 throws IOException {
FileInputStream fis = new FileInputStream("E:\JAVASE\java.avi");
FileOutputStream fos = new FileOutputStream("mySbyteStream\\java.avi");
int by;
while((by = fis.read())!=-1){
fos.write(by);
}
fos.close();
fis.close();
}
public static void method2 throws IOException {
FileInputStream fis = new FileInputStream("E:\JAVASE\java.avi");
FileOutputStream fos = new FileOutputStream("mySbyteStream\\java.avi");
byte[] bys = new byte[1024];
int len;
while((len = fis.read(bys))!=-1){
fos.write(bys,0,len);
}
fos.close();
fis.close();
}
public static void method3 throws IOException {
BufferedInputStream bis = new BufferedInputStream("E:\JAVASE\java.avi");
BufferedOutputStream bos = new BufferedOutputStream("mySbyteStream\\java.avi");
int by;
while((by = bis.read())!=-1){
bos.write(by);
}
bos.close();
bis.close();
}
public static void method3 throws IOException {
BufferedInputStream bis = new BufferedInputStream("E:\JAVASE\java.avi");
BufferedOutputStream bos = new BufferedOutputStream("mySbyteStream\\java.avi");
byte[] bys = new byte[1024];
int len;
while((len = bis.read(bys))!=-1){
bos.write(bys,0,len);
}
bos.close();
bis.close();
}
}
2. 字符流
2.1 为什么会出现字符流【理解】
2.2 编码表【理解】
2.3 字符串中的编码解码问题【应用】
2.4 字符流中的编码解码问题【应用】
2.5 字符流写数据的5种方式【应用】
2.6 字符流读数据的2中方式【应用】
2.7 字符流复制Java文件【应用】
2.8 字符流复制Java文件改进版【应用】
2.9 字符缓冲流【应用】
2.10 字符缓冲流复制Java文件【应用】
2.11 字符缓冲流特有功能【应用】
2.12 字符缓冲流特有功能呢复制Java文件【应用】
2.13 IO流小结【理解】
3.练习案例
3.1 集合到文件【应用】
3.2文件到集合【应用】
3.3 点名器【应用】
3.4 集合到文件改进版【应用】
3.5 文件到集合改进版【应用】