字符流 字符输入流 : Reader 字符输出流: Writer
一:Reader 字符缓冲流:BufferedReader 抽象类 所有字符输入流的超类
二:FileReader 父类是:InputStreamReader
read(char[] ch) 速度更快了。缓存在一个字符数组中 返回值不在返回的是读取到的内容,而是返回的数组中的实际内容长度
三:Writer 子类:BufferedWriter,OutputStreamWriter 字符缓冲流:BufferedWriter 抽象类 是所有字符输出流的超类 write/flush/close
flush和close区别 用flush方法,流对象可以反复操作 close,流对象就不能在用了
四:转换流:字符流的一种 可以自己根据解码的编码格式 来设置编码对应 InputStreamReader(InputStream in) 创建一个使用默认字符集的InputStreamReader。 InputStreamReader(InputStream in, Charset cs) 创建一个使用给定字符集的InputStreamReader。 InputStreamReader(InputStream in, CharsetDecoder dec) 创建一个使用给定字符集解码器的InputStreamReader。 InputStreamReader(InputStream in, String charsetName) 创建一个使用命名字符集的InputStreamReader。
五:输出转换流 可以自己根据解码的编码格式 来设置编码对应 OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。 OutputStreamWriter(OutputStream out, Charset cs) 创建一个使用给定字符集的OutputStreamWriter。 OutputStreamWriter(OutputStream out, CharsetEncoder enc) 创建一个使用给定字符集编码器的OutputStreamWriter。 OutputStreamWriter(OutputStream out, String charsetName) 创建一个使用命名字符集的OutputStreamWriter。
六:缓冲流
效率:读写操作速度提高了 功能 字节 字符
七:字节缓冲流 BufferedInputStream(InputStream in) 创建一个 BufferedInputStream并保存其参数,输入流 in ,供以后使用。 BufferedInputStream(InputStream in, int size) 创建 BufferedInputStream具有指定缓冲区大小,并保存其参数,输入流 in ,供以后使用
字符编码表 计算机存储二进制,而我们生活中的数据太多了,如何让生活中各种各样的数据和计算机存储的二进制对应起来呢? 在这种情况下,美国人整了一个码表。ASCII表 能识别中文的:GBK UTF-8 解码和编码 解码:十进制—数据 编码:数据—十进制
abstract int read() 从输入流中读取数据的下一个字节。 实现了此类的子类必须实现read() 方法 、 字符缓冲流
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class 字符缓冲流拷贝视频 {
public static void main(String[] args) throws IOException {
long star =System.currentTimeMillis();
FileInputStream i= new FileInputStream("D:\\a.mp4");
InputStreamReader r= new InputStreamReader(i);
BufferedReader b =new BufferedReader(r);
FileOutputStream i2= new FileOutputStream("D:\\WeGame\\Download\\b.mp4",true);
OutputStreamWriter r2= new OutputStreamWriter(i2);
BufferedWriter b2 =new BufferedWriter(r2);
char c [] = new char[1024];
int a=0;
while((a=b.read(c))!=-1) {
b2.write(c);
}
b2.close();
b.close();
long end =System.currentTimeMillis();
System.out.println(end-star);
}
}
字节缓冲流
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class 缓冲流完成视频的拷贝 {
public static void main(String[] args) throws IOException {
long star = System.currentTimeMillis();
BufferedInputStream bif= new BufferedInputStream(new FileInputStream("D:\\a.mp4"));
BufferedOutputStream bos= new BufferedOutputStream(new FileOutputStream("D:\\WeGame\\Download\\b.mp4",true));
byte b [] = new byte[1024];
int a=0;
while((a=bif.read(b))!=-1) {
bos.write(b);
}
bos.close();
bif.close();
long end = System.currentTimeMillis();
System.out.println(end-star);
}
}
|