IO(输入输出)(一)字节流
来源:互联网 发布:mac地址表老化时间 编辑:程序博客网 时间:2024/05/21 17:02
字节流读文件
工程结构
try { //一个汉字占用两个字节 String str="我我"; byte[] b=str.getBytes(); //创建字节输入流,用于读取当前目录下的文件 InputStream is=new FileInputStream("source\\test.text"); //创建字节输出流 OutputStream os=new FileOutputStream("target\\testTarget.text"); //获取当前时间 long start=System.currentTimeMillis(); int len;//定义len保存每次读取的字节数 while((len=is.read())!=-1){ os.write(len); } os.close(); is.close(); //结束时间 long end=System.currentTimeMillis(); System.out.println("用时"+(end-start)+"毫秒"); is.close(); os.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block System.out.println("文件没有找到;"); e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
文件拷贝
第一种方法,一个字节一个字节的读取,速度非常慢,下面我将一个音乐文件复制到另一个文件中
try { InputStream in=in=new FileInputStream("source\\三角题 - 二珂.mp3");//定义字节输入流; OutputStream ou=new FileOutputStream("target\\三角题 - 二珂.mp3");//定义字节输出流 //byte[] b=new byte[1024];//定义一个byte类型数组,用作字节缓冲区 int len;//定义长度 long start=System.currentTimeMillis();//定义开始时间 while((len=in.read())!=-1){ ou.write(len); } long end=System.currentTimeMillis();//定义结束时间 System.out.println("使用字节缓冲区拷贝用时"+(end-start)+"毫秒"); in.close();//关闭输入流 ou.close();//关闭输出流 } catch (FileNotFoundException e) { // TODO Auto-generated catch block System.out.println("文件没有找到"); e.printStackTrace(); } catch(IOException e){ e.printStackTrace(); }
高效率复制(局部代码段)
byte[] b=new byte[1024];//定义一个byte类型数组,用作字节流缓冲区 int len;//定义长度 while((len=in.read(b))!=-1){ ou.write(b); }
同样的一首歌曲,复制时间天差地别
第三种方法是:使用IO包中提供的字节缓冲流BufferedInputStream和BufferedOutputStream
try { //创建带缓冲区的字节输入流 BufferedInputStream bis=new BufferedInputStream(new FileInputStream("source\\三角题 - 二珂.mp3")); //创建带缓冲区的字节输出流 BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("target\\三角题 - 二珂.mp3")); long start=System.currentTimeMillis(); int len; while((len=bis.read())!=-1){ bos.write(len); } long end=System.currentTimeMillis(); System.out.println("时间"+(end-start)+"毫秒"); bis.close(); bos.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch(IOException e){ e.printStackTrace(); }
阅读全文
0 0
- IO(输入输出)(一)字节流
- IO(输入输出)-字节流
- JAVA输入输出(IO)之字节流
- (黑马程序员)学习笔记,IO输入输出(字节流)
- Java基础-IO-字节输入输出流(笔记)
- 第二十篇:JAVA输入输出(IO)之字节流
- java IO-输入输出流(一)
- java Io总结一(输入输出流)
- 【IO流】字节输入输出流
- java IO(输入输出) 字节流
- io(输入输出流)
- IO(一)字符流,字节流
- java IO流(一) --字节流
- 黑马程序员 ---IO输入输出(一)
- 输入输出流(IO)—文件字节流(FileInputStream & FileOutputStream)的基本操作及运用
- java IO操作与字节流(八)过滤流输入输出基本数据类型
- Java.io包中的流的输入输出详解1(字节流)
- IO流输入输出流,字符字节流
- 【DSP】CCS 5.5的工程建立
- 自己用心开始写的第一篇博客
- 习题3.11
- 反射和正则基础
- 简单理解委托和事件
- IO(输入输出)(一)字节流
- QT 对于按钮实现的思考
- CentOS7使用YUM安装Adobe Flash Player
- 16. 3Sum Closest
- 模拟
- 2017
- Linux 安装redis以及redis扩展
- 初识线程1---入门1
- Linux 文件目录 ls 文件类型