黑马程序员-----IO流(第五篇)
来源:互联网 发布:苹果充值卡回收软件 编辑:程序博客网 时间:2024/06/06 17:15
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.IO流用来处理设备之间的数据传输
流按操作数据分为字节流与字符流
流按流向分为:输入流,输出流
字节流的抽象基类:InputStream,OutputStream
字符流的抽象基类:Reader,Writer
2.FileWrite应用实例
import java.util.*;import java.io.*;class test5{ public static void main(String[] args) { //创建一个FileWriter对象,该文件会被创建到指定目录下 FileWriter fw=null; FileReader fr=null; try { //传递一个true参数,代表不覆盖已经存在的文件,在文件末尾处进行写 fw=new FileWriter("demo.txt",true); fr=new FileReader("demo.txt"); fw.write("ab\r\ncde"); fw.flush(); //逐个读取 /* int ch=0; while((ch=fr.read())!=-1)//fr.read(),返回int型数据 { System.out.println("ch="+(char)ch); } */ //通过字符数组来读取,read(char[])返回的是读到的字符个数。 char a[]=new char [3]; int num=0; while((num=fr.read(a))!=-1) { System.out.println(new String(a,0,num)); } } catch (IOException e) { System.out.println("cuowu "); } finally { try { //关闭的前提是,文件被创建 if(fw!=null) fw.close();//关闭流资源,并刷新一次 fr.close(); } catch (IOException e) { System.out.println(e.toString()); } } } }
3.字符流的缓冲区
缓冲区的出现提高了对数据的读写效率
对应类:BufferWriter BufferReader
创建缓冲区之前,必须现有流对象。
把需要提高效率的流对象作为参数传递给缓冲区的构造函数即可。
跨平台的换行符,newLine();
BufferReader:字符流读取缓冲区,提供了一次读一行的方法,方便于对文本数据的获取。当返回值为null时,文本结束。
readLine();不返回回车符,其实也是read在一个一个读,到回车符时全部返回
4.MyReader//专门用于读取数据的类
装饰模式比继承要灵活,避免继承体系臃肿,降低了类与类之间的关系。
装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强的功能,都属于同一体系。
5.字节流
InputStream OutputStream//写入
需求:想要操作图片数据,就要用到字节流
字节流基本操作:
import java.io.*;class test6 { public static void main(String[] args) throws IOException { writeFile(); readFile_1(); readFile_2(); } public static void writeFile() throws IOException { FileOutputStream fos=new FileOutputStream("fos.txt",true); //字符串变成字节数组 fos.write("abcde".getBytes()); fos.close(); } public static void readFile_1() throws IOException { //定义字节流数组读取 FileInputStream fis=new FileInputStream("fos.txt"); byte[] b=new byte[1024];//定义字节数组,不要写成Byte了。 int num=0; while((num=fis.read(b))!=-1) //没有读到结束时。 { System.out.println(new String(b,0,num)); } fis.close(); } public static void readFile_2() throws IOException { FileInputStream fis=new FileInputStream("fos.txt"); byte[] b=new byte[fis.available()];//定义一个刚好的自己数组,但是如果是视频等需要太大内存,容易内存泄露 int num=fis.read(b); /* while((num=fis.read(b))!=-1) //没有读到结束时。 { System.out.println(new String(b,0,num)); }*/ System.out.println(new String(b,0,num)); fis.close(); }}
0 0
- 黑马程序员-----IO流(第五篇)
- 黑马程序员--java技术blog---第五篇:IO流(4)
- 黑马程序员第五季——IO流
- 黑马程序员--IO流(第二篇)
- 《黑马程序员》高级io作业第五题
- 黑马程序员--(IO流)
- 黑马程序员 IO流
- 黑马程序员IO流
- 黑马程序员-IO流
- 黑马程序员---IO流
- 黑马程序员-----IO流
- 黑马程序员--io流
- 黑马程序员:IO流
- 黑马程序员----IO流
- 黑马程序员--IO流
- 黑马程序员-IO流
- 黑马程序员:IO流
- 黑马程序员IO流
- ubuntu12.04下安装QT
- 目标跟踪学习系列八:Struck:Structured Output Tracking with Kernels(2011 ICCV)
- vs2010和matlab2010混合编程中char16_t重定义的问题
- HDU - 5033 Building(单调栈)
- 写好SCI论文的语言技巧 --- 恰当的选词
- 黑马程序员-----IO流(第五篇)
- Media SDK
- 不错的maven学习笔记,收藏——Maven学习 (五) Elipse中发布一个Maven项目到Tomcat
- 如何改正你管理时间的方式
- HDU 5033 Building
- linux之cp/scp命令+scp命令详解
- u盘资料误删恢复
- Android APK的数字签名的作用和意义
- 公司内部文档安全软件coredump分析实例