黑马程序员-----IO流(第五篇)
2014-09-24 16:53
155 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.IO流用来处理设备之间的数据传输
流按操作数据分为字节流与字符流
流按流向分为:输入流,输出流
字节流的抽象基类:InputStream,OutputStream
字符流的抽象基类:Reader,Writer
2.FileWrite应用实例
3.字符流的缓冲区
缓冲区的出现提高了对数据的读写效率
对应类:BufferWriter BufferReader
创建缓冲区之前,必须现有流对象。
把需要提高效率的流对象作为参数传递给缓冲区的构造函数即可。
跨平台的换行符,newLine();
BufferReader:字符流读取缓冲区,提供了一次读一行的方法,方便于对文本数据的获取。当返回值为null时,文本结束。
readLine();不返回回车符,其实也是read在一个一个读,到回车符时全部返回
4.MyReader//专门用于读取数据的类
装饰模式比继承要灵活,避免继承体系臃肿,降低了类与类之间的关系。
装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强的功能,都属于同一体系。
5.字节流
InputStream OutputStream//写入
需求:想要操作图片数据,就要用到字节流
字节流基本操作:
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(); } }
相关文章推荐
- 黑马程序员--java技术blog---第五篇:IO流(4)
- 黑马程序员-IO流的小总结(下)
- 黑马程序员 之 IO流 拷贝视频 Day03
- 黑马程序员_IO流笔记
- 黑马程序员----------------io流复制文件
- 黑马程序员-------IO流
- 黑马程序员——Java基础---异常、IO流
- 黑马程序员——Java中IO流笔记(上)
- 黑马程序员——学习日记17 java IO流 (下)
- 黑马程序员_十四 【IO流认识】【字符流】
- 黑马程序员——IO流
- 黑马程序员——Java基础--IO流(一)
- 黑马程序员——Java编程语言学习总结 – IO流
- 黑马程序员_IO流——MyBufferedReader
- 黑马程序员——IO流(上)
- 黑马程序员_java之IO流
- 黑马程序员——学习笔记09.Java_IO流
- 黑马程序员——Java基础——IO流笔记(File使用示例)
- 黑马程序员-java IO流
- 黑马程序员--IO流01--字符流