io流
一、什么是流
①流是一组游戏的数据序列
② 以先进先出的方法发送信息的通道
二、java流的分类
按照流向区分 :①输入流 OutputStream和Writer作为基类
② 输出流 InputStream和Reader作为基类
输入输出流是相对于计算机内存来说的
按照处理数据单元划分:①字节流 字节输入流InputStream基类
字节输出流OutputStream基类
②字符流 字符输入流Reader基类
字符输出流Witer基类
字节流是8位通用字节流,字符流是16位Unicode字符流
三、InputStream字节输入流(抽象类-基类)方法参考
① int read(); 从输入流一个字节一个字节的读,返回的是该字节的整数表示形式,如果读到了输入流的末尾,返回-1
② int read(byte [] b) 从输入流读取若干字节,把这些字节保存到数组b中,返回的是读到的字节数,如果读到了输入流的末尾,返回-1
③int read(byte []b,int off,int len) 从输入流读取若干字节,把这些字节保存到数组b中,off指的是字节数组中开始保存数据的起始下标。len指读取的字节数目,返回的是读到的字节数,如果读到了输入流的 末尾,返回-1
四、练习
//用面向对象的方式,通过输入、输出流、缓冲流,读取\写入指定视频文件
public static void copyFile(String src1,String src2){ FileInputStream fis=null; FileOutputStream fos=null; BufferedInputStream h1=null; BufferedOutputStream h2=null; try { fis=new FileInputStream(src1); fos=new FileOutputStream(src2); h1=new BufferedInputStream(fis); h2=new BufferedOutputStream(fos); byte [] ous=new byte[50]; int len; while((len=h1.read(ous))!=-1){ h2.write(ous, 0, len); h2.flush(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { h2.close(); h1.close(); fos.close(); fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args) { String src1="C:\\Users\\18370\\Desktop\\视频\\篮球1.1.mp4"; String src2="C:\\Users\\18370\\Desktop\\视频\\篮球2.mp4"; long start=System.currentTimeMillis(); Test.copyFile(src1, src2); long end=System.currentTimeMillis(); System.out.println("共耗时:"+(end-start)); } }

浙公网安备 33010602011771号