黑马程序员-Java基础---IO流介绍
来源:互联网 发布:微软office软件 编辑:程序博客网 时间:2024/06/05 11:00
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、IO的介绍
IO流用来处理设备之间的数据传输
Java对数据的操作是通过流的方式Java用于操作流的对象都在IO包中
二、流按操作数据分为两种:字节流与字符流 。
流按流向分为:输入流,输出流。
三、字节流包括:
InputStream
FileInputStream
BufferedInputStream
OutputStream
FileOutputStream
BufferedOutputStream
字符流包括:
Writer
FileWriter
BufferedWriter
Reader
FileReader
BufferedReader
四、应用范围:
字节流可以操作文本文件和媒体文件之类的
字符流是专门操作文本文件的
五、字符流和字节流的应用
1、字符流
如下代码:
public static void copyFile_1()throws Exception{FileReader fr = new FileReader("C:\\Users\\Administrator\\Desktop\\路线.txt");FileWriter fw = new FileWriter("C:\\Users\\Administrator\\Desktop\\路线_copy1.txt");char[] ch =new char[1024];int len = 0;while ((len=fr.read(ch))!=-1){fw.write(ch);}fw.close();fr.close();}
这是加入了字符数组用来缓存数据,提高了效率,优化了操作
还有就是利用BufferedReader和BufferedWriter来提高效率
如下代码:
public static void copyFile_2()throws Exception{BufferedReader bufr = new BufferedReader(new FileReader("C:\\Users\\Administrator\\Desktop\\路线.txt"));BufferedWriter bufw = new BufferedWriter(new FileWriter("C:\\Users\\Administrator\\Desktop\\路线_copy2.txt"));//本身就是缓冲区,就不加数组进行存储了String str = null;while ((str=bufr.readLine())!=null){bufw.write(str);bufw.newLine();}bufr.close();bufw.close();}
BufferReader拥有一个readLine()功能,可以大大提高效率
2、字节流
字节流可以操作文本可以操作媒体文件,因为字符流就是为操作文本文件而生的,所以字节流一般用来操作媒体文件
如复制照片,代码如下代码:
public static void copyPicture_1()throws Exception{BufferedInputStream bufi = new BufferedInputStream(new FileInputStream("C:\\Users\\Administrator\\Desktop\\2.jpg"));BufferedOutputStream bufo = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Administrator\\Desktop\\2_copy.jpg"));byte[] buf = new byte[1024];int len =0;while ((len=bufi.read(buf))!=-1){bufo.write(buf,0,len);}bufi.close();bufo.close();}
还可以用来操作视频
代码如下:
public static void copyFilm()throws Exception{long start = System.currentTimeMillis();BufferedInputStream bufi = new BufferedInputStream(new FileInputStream("F:\\迅雷下载\\[阳光电影www.ygdy8.com].女狙击手.BD.720p.中文字幕.rmvb"));BufferedOutputStream bufw = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Administrator\\Desktop\\女狙击手.rmvb"));byte[] buf = new byte[1024*30];int len =0;while ((len=bufi.read(buf))!=-1){bufw.write(buf,0,len);}bufi.close();bufw.close();long end = System.currentTimeMillis();int minute = (int)((end-start)/1000);System.out.println(minute);}------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
0 0
- 黑马程序员-Java基础---IO流介绍
- 黑马程序员-java基础-IO流的简单介绍
- 黑马程序员-java基础 io字符流
- 黑马程序员-java基础 io字节流
- 黑马程序员--JAVA基础之IO流
- 黑马程序员JAVA基础-IO流
- 黑马程序员 Java基础 ---> IO流
- 黑马程序员 JAVA基础<五> IO流
- 黑马程序员-JAVA基础-IO流
- 黑马程序员 java基础回顾---IO流
- 黑马程序员 Java基础----IO流(2)
- 黑马程序员---java基础---5IO流
- 黑马程序员----Java基础之IO流
- 黑马程序员---Java基础总结--IO流
- 黑马程序员-java基础-IO流
- 黑马程序员--JAVA基础之IO流
- 黑马程序员-------java基础 IO流<一>
- 黑马程序员-----java基础IO流<二>
- 常见错误描述: Undefined symbols for architecture i386
- Transform
- [置顶] 一位ACMer过来人的心得
- maven 安装
- 南阳oj 题目75 日期计算
- 黑马程序员-Java基础---IO流介绍
- 王家林亲授《DT大数据梦工厂》大数据实战视频“Scala深入浅出实战经典
- Shortest path of the king
- innodb 乐观插入因空间不够导致失败,进入悲观插入阶段,这个空间的限制大小
- 分治法在算法设计中的运用
- [置顶] 北大ACM试题分类 - 实时更新我所有的解题报告链接
- 阻止“IIS短文件名泄露”
- STL的容器算法迭代器的设计理念
- 设计模式--工厂模式(工厂方法、抽象工厂)