ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:27.08KB ,
资源ID:2994732      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2994732.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(IO流体系总结.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

IO流体系总结.docx

1、IO流体系总结IO流总结IO(Input Output)流 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 流按操作数据分为两种:字节流与字符流。 流按流向分为:输入流,输出流。输入流和输出流的流向的理解?流就是处理数据的一种方式或者一种手段,或者理解为一种数据流。 从硬盘已有的数据读取出来放内存里面的这个过程就是输入流。 把内存中的数据存储到硬盘中的这个过程就是输出流。 简单理解就是:以内存为中心。什么时候使用流对象? 操作设备上的数据或操作文件的时候可以使用。字符流字符流的抽象基类:Reader , Writer。字符流的理解,由

2、来和作用?由于很多国家的文字融入进来,比如说中文在编码表中默认占2个字节。而为了按照文字的单位来处理,所以出现了字符流。 由来:早期的字节流+编码表,为了更便于操作文字数据。 作用:为了处理文字数据。复制文件的原理和代码。原理: 首先用一个读取流对象和一个文件进行关联,然后用一个写入流对象作为目地的, 为了把读取流中的文件传输到目的地流对象中,我们就提供了一个字符数组, 为了关联这个数组,所以读取流对象有一个read()方法与这个字符数组进行关联, 同理,写入流对象也有一个write()方法与这个字符数组进行关联, 这样2个流对象就相连接了,而这个字符数组就相当于一个中转站。 import j

3、ava.io.FileReader; import java.io.FileWriter; import java.io.IOException; /* * 对文本文件进行复制。将c盘的文件复制到d盘中。 * 原理:其实就是一个最简单的读写过程。 * 从c盘源,读取数据,并将读到的数据,写入到目的d盘中。 */ public class CopyTextFileTest public static void main(String args) FileReader fr = null; FileWriter fw = null; try /1,创建一个字符读取流读取与源数据相关联。 fr =

4、new FileReader(demo.txt); /2,创建一个存储数据的目的地。 fw = new FileWriter(copyDemo.txt); /3,创建一个字符数组将读取流对象和写入流对象相连接。 char buf = new char1024; /4,每次读取的长度不一样,所以定义一个变量. int len = 0; /5,用循环读取文件中的数据 while(len= fr.read(buf) != -1) /判断是否读取完没 fw.write(buf,0,len); /为了只读取有效的数据 catch (Exception e) finally try fr.close();

5、 catch (IOException e) e.printStackTrace(); try fw.close(); catch (IOException e) e.printStackTrace(); 读取字符流对象的两种方式第一种读取方式 一次读一个字符 /1,创建一个文件读取流对象,和指定名称的文件相关联 /2,要保证该文件时已经存在的。如果不存在,会发生异常。FileNotFoundException FileReader fr = new FileReader(Demo.txt); /3,调用读取流的方法,read方法一次读一个字符,而且会自动往下读。 int line=0; /r

6、ead返回时int型的数,即返回的是字符的ascII表对应的数字 while (line=fr.read()!=-1) sop(char)ch); 第二种读取方式 /1,创建一个文件读取流对象,和指定名称的文件相关联 /2,要保证该文件时已经存在的。如果不存在,会发生异常。FileNotFoundException FileReader fr = new FileReader(Demo.txt); /把Demo.txt中的数据读到控制台 /3,定义一个字符数组,用于存储独到的字符该read(char) /返回的是读到字符的个数 char buf = new char1024; int len=

7、0; while(len=fr.read(buf)!=-1) /把读到的字符暂时存到buf数组中 sop(num=+num+.+new String(buf,0,len); 缓冲区的基本思想?提高效率的原理。缓冲区的基本思想就是对要处理的数据进行临时存储。譬如购物车以及篮子。 原理: 减少频繁的操作。 给读取流对象和写入流对象提供中转站。 相对于来回跑的麻烦,利用缓冲区的容量,可以一边先存储,满了后再写入的方式,这样就提高了效率。BufferedReader ,BufferedWriter.高效的体现?内部将数组进行封装。 变成对象后,方便于对缓冲区的操作。提高效率。 并提供了对文本便捷操作的

8、方法。 readLine newLine。自定义缓冲区,MyBufferedReaderimport java.io.IOException;import java.io.Reader;/* * 模拟一个缓冲区 * 基于已有的缓冲区思想,我们可以从源读取用read方法。 * 我们的缓冲区,应该是一个更高效的read读取方法。 */public class MyBufferTest extends Reader private Reader r; private char buf = new char1024; private int count = 0,pos = 0; public MyBu

9、fferTest(Reader r) this.r = r; /* * 一次从缓冲区中取一个 * return 返回一个缓冲区中的字符 * throws IOException */ public int myRead() throws IOException /1,首先判断缓冲区中是否有数据,如果没有就从源中去拿。 if(count = 0) count = r.read(buf); pos = 0; /2,当缓冲区中没数据了且源中也没有数据时,count自减1小于0时就返回-1结束. if(count 0) return -1; /3,如果以上都不满足,那么从缓冲区中写入一个字符到新的文件

10、中。 char ch = bufpos; pos+; count-; return ch; /* * 按照文本特点,提供一个特有的操作文本的方法。 * 一次读取一行文本,只要是到行结束符之前的文本即可。 * return 返回读取到的一行文本 * throws IOException * 原理: * 就是从缓冲区中取出数据,并存储到一个临时容器中。 * 如果取到了回车符,就将临时容器中的数据转成字符串返回。 */ public String myReadLine() throws IOException /1,定义一个临时容器,进行临时存储 StringBuilder sb = new Str

11、ingBuilder(); /2,定义一个变量,接收读取到的字符,也就是转成ask码表后的一个int型数字 int ch = 0; while(ch = myRead() != -1) /3,当读取到r时,直接跳出本次循环 if(ch = r) continue; /4,当读取到n时,直接跳出当前循环 if(ch = n) return sb.toString(); /5,当都没有读取到时,就将这些数据存储到临时容器中。 sb.append(char)ch); /6,当临时容器中的长度不等于0时,就输出字符。 if(sb.length() != 0) return sb.toString();

12、 return null; Override public void close() throws IOException Override public int read(char arg0, int arg1, int arg2) throws IOException return 0; readLine方法的原理。就是从缓冲区中获取数据,并进行临时存储,知道读取到了换行符, 将临时存储的数据转成字符串返回。 它对于操作文本是毕竟方便,可以完成一行一行的读取文本。装饰设计模式,以及和继承的区别?对原有类进行了功能的改变,增强。 区别: 1, 继承在对对象进行增强时,采用的是子类覆盖父类中的

13、写方法, 且这些子类使用的功能的原理都一样,这样就显得很臃肿。 而BufferWriter的出现避免了继承体系关系的臃肿,比继承更为灵活。 2, 在为了增强功能的情况下,相较于继承,BufferWriter这种方式解决起来更为方便。使用字符流可以复制图片吗?为什么?不能,因为字符流就是字节流+编码表,而用字符流去复制图片时,字符流会默认将图片的字节码格式进行编码, 所以会导致复制后的图片与原图片可能不一致。字符流继承体系简图字节流的抽象基类:InputStream ,OutputStream。字节流的基本应用?复制MP3的例子。基本操作与字符流类相同但它不仅可以操作字符,还可以操作其他媒体文件

14、复制MP3的四种方式。import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class CopyMediaFileTest /* * param args * throws IOException */ public static void main(String args) throws IOException long start = System.currentTimeMillis(); copy_4(); long end = System.currentTimeMillis()

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1