欢迎来到天天文库
浏览记录
ID:1367534
大小:432.50 KB
页数:25页
时间:2017-11-11
《黑马程序员java培训就业班笔记:io流体系总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、IO流总结IO(InputOutput)流lIO流用来处理设备之间的数据传输lJava对数据的操作是通过流的方式lJava用于操作流的对象都在IO包中l流按操作数据分为两种:字节流与字符流。l流按流向分为:输入流,输出流。输入流和输出流的流向的理解?流就是处理数据的一种方式或者一种手段,或者理解为一种数据流。从硬盘已有的数据读取出来放内存里面的这个过程就是输入流。把内存中的数据存储到硬盘中的这个过程就是输出流。简单理解就是:以内存为中心。什么时候使用流对象?操作设备上的数据或操作文件的时候可以使用。字符流字符流的抽象基类:Reader,Write
2、r。字符流的理解,由来和作用?由于很多国家的文字融入进来,比如说中文在编码表中默认占2个字节。而为了按照文字的单位来处理,所以出现了字符流。由来:早期的字节流+编码表,为了更便于操作文字数据。作用:为了处理文字数据。复制文件的原理和代码。原理:首先用一个读取流对象和一个文件进行关联,然后用一个写入流对象作为目地的,为了把读取流中的文件传输到目的地流对象中,我们就提供了一个字符数组,为了关联这个数组,所以读取流对象有一个read()方法与这个字符数组进行关联,同理,写入流对象也有一个write()方法与这个字符数组进行关联,这样2个流对象就相连接了
3、,而这个字符数组就相当于一个中转站。importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;/**对文本文件进行复制。将c盘的文件复制到d盘中。*原理:其实就是一个最简单的读写过程。*从c盘源,读取数据,并将读到的数据,写入到目的d盘中。*/publicclassCopyTextFileTest{publicstaticvoidmain(String[]args){FileReaderfr=null;FileWriterfw=null;try{//1,
4、创建一个字符读取流读取与源数据相关联。fr=newFileReader("demo.txt");//2,创建一个存储数据的目的地。fw=newFileWriter("copyDemo.txt");//3,创建一个字符数组将读取流对象和写入流对象相连接。char[]buf=newchar[1024];//4,每次读取的长度不一样,所以定义一个变量.intlen=0;//5,用循环读取文件中的数据while((len=fr.read(buf))!=-1)//判断是否读取完没fw.write(buf,0,len);//为了只读取有效的数据}catch(
5、Exceptione){}finally{try{fr.close();}catch(IOExceptione){e.printStackTrace();}try{fw.close();}catch(IOExceptione){e.printStackTrace();}}}}读取字符流对象的两种方式第一种读取方式一次读一个字符//1,创建一个文件读取流对象,和指定名称的文件相关联//2,要保证该文件时已经存在的。如果不存在,会发生异常。FileNotFoundExceptionFileReaderfr=newFileReader("Demo.tx
6、t");//3,调用读取流的方法,read方法一次读一个字符,而且会自动往下读。intline=0;//read返回时int型的数,即返回的是字符的ascII表对应的数字while((line=fr.read())!=-1){sop((char)ch);}第二种读取方式//1,创建一个文件读取流对象,和指定名称的文件相关联//2,要保证该文件时已经存在的。如果不存在,会发生异常。FileNotFoundExceptionFileReaderfr=newFileReader("Demo.txt");//把Demo.txt中的数据读到控制台//3,定
7、义一个字符数组,用于存储独到的字符该read(char[])//返回的是读到字符的个数char[]buf=newchar[1024];intlen=0;while((len=fr.read(buf))!=-1)//把读到的字符暂时存到buf数组中{sop("num="+num+"...."+newString(buf,0,len));}缓冲区的基本思想?提高效率的原理。缓冲区的基本思想就是对要处理的数据进行临时存储。譬如购物车以及篮子。原理:减少频繁的操作。给读取流对象和写入流对象提供中转站。相对于来回跑的麻烦,利用缓冲区的容量,可以一边先存储,
8、满了后再写入的方式,这样就提高了效率。BufferedReader,BufferedWriter.高效的体现?内部将数组进行封装。变成对
此文档下载收益归作者所有