IO流
来源:互联网 发布:苹果怎么打开php文件夹 编辑:程序博客网 时间:2024/06/05 18:51
输入输出流(IO流)
字节流
- 字节流可以处理所有数据(计算机识别的是一个字节),InputStream和OutputStream是字节流的积类,能用字符流的地方都可以用字节流。
- InputStream表示字节输入流,OutputStream表示字节输出流,可以拷贝文件。
例
public class LianXi1 { public static void main(String[] args) throws Exception { //创建一个字节输入流,存放要拷贝的文件 InputStream in=new FileInputStream("D:\\kk 2017-06-13 22-28-37.avi\\"); //字节输出流,读取要拷贝的文件,地址 OutputStream out=new FileOutputStream("E:\\kk 2017-06-13 22-28-37.avi\\"); int len; //拷贝文件前的系统时间 long begintime=System.currentTimeMillis(); while((len=in.read())!=-1){ //字节写入文件 out.write( len); } //获取文件拷贝结束的系统时间 long endtime=System.currentTimeMillis(); System.out.println("拷贝文件所消耗的时间是:"+(endtime-begintime)+"毫秒"); in.close(); out.close(); }}
转换流
InputStreamReader可以将字节流转换成字符流,OutputStreamWriter可以将字符流转换成字节流,代码中用BufferedReader和BufferedWriter包装转换流来提高性能。
public class LianXi2 { public static void main(String[] args) throws Exception { //创建字节输入流 FileInputStream in=new FileInputStream("src.txt"); //将字节输入流转换成字符输入流 InputStreamReader isr=new InputStreamReader(in); //对字符流对象进行包装 BufferedReader br=new BufferedReader(isr); FileOutputStream out=new FileOutputStream("des.txt"); //将字节输入流转换成字符输入流 OutputStreamWriter osw=new OutputStreamWriter(out); BufferedWriter bw=new BufferedWriter(osw); String line; while((line=br.readLine())!=null){ bw.write(line); } br.close(); bw.close(); }}
IO流按照方向分,可以分为输入流(读取),输出流(写入)(这些都是相对于内存而言)。
按照操作数据可以分为字节流和字符流,字节流可以处理所有的数据,包含一个字节
- InputStream
- (FileinputStream,BufferedInputStream)
- OutputStream
- (FileOutputStream(avaliable),BufferdOutputStream);
- 字符流可以处理文本数据,两个字节,原理是根据两个字节去查找指定的编码表(unicode),获得相应的字符(Reader,Writer)。
- Reader(读,输入流)
- FileReader:读取基本步骤,打开文件–>读取(单个或char数组)–>关闭
*BufferReader:自带缓存
- FileReader:读取基本步骤,打开文件–>读取(单个或char数组)–>关闭
- Writer (写,输出流)
- FileWriter:写入的基本步骤打开文件–>写入缓存—>刷新缓存—>关闭文件
- BufferedWriter
- Reader(读,输入流)
- InputStream
按照功能可以分为包装流和节点流
阅读全文
0 0
- 【IO流】IO框架
- IO流呀IO流
- 字符IO&数据流IO&对象流IO
- io流
- io流
- IO流
- IO流
- IO 流
- IO流
- io流
- IO流
- io流
- IO流
- IO流
- IO流
- IO流
- IO流
- IO流
- javaweb引用jar类库的问题
- Java集合类:set、list、queue、map
- 【第三方支付公司大全】2016最新持牌第三方支付公司,pos支付拍照一清机
- echarts折线图分段显示不同颜色
- 【OpenCV3图像处理】线性滤波:均值滤波,高斯滤波
- IO流
- 在Tomcat7.0中设置默认服务器和不加端口名访问
- Joseph
- android布局适配
- 无意看到的web优化的文章 转载{前端学习 第五节}
- vuejs小白记录
- 各种变量与零值的比较
- 使用事件触发函数
- Context 的创建时机