




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【精品】IO总结 JAVA IO流总结 一、IO流的三种分类方式1.按流的方向分为输入流和输出流2.按流的数据单位不同分为字节流和字符流3.按流的功能不同分为节点流和处理流 二、IO流的四大抽象类字符流Reader Writer字节流InputStream(读数据)OutputStream(写数据) 三、InputStream的基本方法int read()throws IOException读取一个字节以整数形式返回,如果返回-1已到输入流的末尾void close()throws IOException关闭流释放内存资源long skip(long n)throws IOException跳过n个字节不读 四、OutputStream的基本方法void write(int b)throws IOException向输出流写入一个字节数据void flush()throws IOException将输出流中缓冲的数据全部写出到目的地 五、Writer的基本方法void write(int c)throws IOException向输出流写入一个字符数据void write(String str)throws IOException将一个字符串中的字符写入到输出流void write(String str,int offset,int length)将一个字符串从offset开始的length个字符写入到输出流void flush()throws IOException将输出流中缓冲的数据全部写出到目的地 六、Reader的基本方法int read()throws IOException读取一个字符以整数形式返回,如果返回-1已到输入流的末尾 七、节点流类型 八、访问文件之FileInputStream和FileOutputStream继承基类用于向文件中输入输出字节 九、访问文件之FileReader和FileWriter继承基类用于向文件中输入输出字符-输出流在构造函数第二个参数可以设置true意义为跟在已有文件后进行输入-此类流会抛出FileNotFoundException需要对其进行显示捕捉 十、缓冲流缓冲流要套接在相应的节点流之上,提高了读写的效率。 此处理流的构造方法都得传相对应的基类类型BufferedReader提供了readLine方法用于高校读取一行字符串BufferedWriter提供了newLine用于写入一个行分隔符也就是换行BufferedInputStream没多大用处BufferedOutputStream没多大用处 十一、转换流主要作用将字节流转换成字符流。 用处较大!转换流在构造时可以指定其编码集合InputStreamReader需要和InputStream套接OutputStreamWriter需要和OutputStream套接例OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream(文件路径);方法例osw.getEncoding();获得流的编码方式 十二、数据流与字节数组流数据流主要为实现可以存取Java原始数据类型如long,boolean数据流是字节流DataInputStream需要和InputStream套接DataOutputStream需要和OutputStream套接DataInputStream方法readBoolean()readInt()read()readUTF()网络传输常用方法读一个Unicode字符串DataOutputStream方法与DataInputStream基本对应为写的方法/此构造函数等于已可以往一个字节数组里输入内容ByteArrayOutputStream baos=new ByteArrayOutputStream();/此方法为获取一个字节数组方法返回字节数组baos.toByteArray();/此方法获取字节数组占了多少字节new ByteArrayInputStream(一个字节数组)。 available()1ByteArrayOutputStream baos=2new ByteArrayOutputStream();3DataOutputStream dos=4new DataOutputStream(baos);5try6dos.writeDouble(Math.random();7dos.writeBoolean(true);8ByteArrayInputStream bais=9new ByteArrayInputStream(baos.toByteArray();10System.out.println(bais.available();11DataInputStream dis=new DataInputStream(bais);12System.out.println(dis.readDouble();13System.out.println(dis.readBoolean();14dos.close();dis.close();15catch(IOException e)16e.printStackTrace();17 十三、Print流Print流只有输出流无输入流,PrintWriter和PrintStream分别针对字符字节两个类提供了重载的Print和Println方法用于多种数据类型的输出PrintWriter和PrintStream的输出操作不会抛出异常PrintWriter和PrintStream有自动flush功能-System.setOut(接收OutputStream类):用于设置系统默认输出流 十四、Object流等同于c#序列化,用直接将Object写入或读出transient关键字为不序列化此成员变量需要序列化的类必须实现Serializable接口主要方法writeObject(Object);readObject();读出为Object类型需要强转数据类型1import java.io.*;23public class TestObjectIO4public staticvoid main(String args)throws Exception5T t=new T();6t.k=8;7FileOutputStream fos=new FileOutputStream(d:/share/java/io/testobjectio.dat);8ObjectOutputStream oos=new ObjectOutputStream(fos);9oos.writeObject(t);10oos.flush();11oos.close();1213FileInputStream fis=new FileInputStream(d:/share/java/io/testobjectio.dat);14ObjectInputStream ois=new ObjectInputStream(fis);15T tReaded=(T)ois.readObject();16System.out.println(tReaded.i+tReaded.j+tReaded.d+tReaded.k);1718192021classT22implements Serializable2324int i=10;25int j=9;26double d=2.3;27transient intk=15;28*Io总结2*RandomAessFile操作文件内容,访问文件任意位置(坐标的指针会有发生移动,并且会发生自动移位)打开文件,有两种模式rw,rRandomAessFile raf=new RandomAessFile(file,rw);3)写入方法:raf.write(int)将整数的低八位写入到文件中,指针自动移动到下一个位置,准备再次写入4)读取文件:int b=raf.read()从文件中读取一个byte(8位)填充到int的低八位,高24位为0,返回值范围正数:0255,如果返回-1表示读取到了文件末尾!每次读取后自动移动文件指针,准备下次读取.序列化将数据转换为n个byte序列叫序列化。 反序列化将n个byte转化为数据RandomAessFile提供基本类型的读写方法可以将基本类型序列化到文件和反序列化为数据5IO流(InputStream,OutputStream)InputStream,OutputStream都是抽象类InputStream抽象了应用程序读取数据的方式OutputStream抽象类应用程序写出数据的方式EOF=End ofFile=-1输入流基本方法:int b=in.read()读取一个byte无符号填充到int低八位,-1是EOF in.read(bytebuf)读取数据填充到buf中in.read(bytebuf,int start,int size)读取数据填充到buf中in.close();输出流的基本方法:out.write(int b)写出一个byte到流b的低八位写出到文件out.write(bytebuf)将缓冲区buf都写入到流out.write(bytebuf,int start,int size)将buf的一部分写到流中.out.flush()清理缓冲out.close();6文件输入流FileInputStream继承了InputStream FileInputStream具体实现了在文件上读取数据7文件输出流FileOutputStream继承了OutputStream FileOutputStream具体实现了在往文件写入数据(FileInputStream,FileOutStream属于文件输入输出流他们分别继承于InputStream,OutputStream)/File中常用的方法File demo=new File(demo);if(!demo.exists()demo.mkdir();File test=new File(demo,test.txt);if(!test.exists()test.createNewFile();/listFiles():把当前目录下面的所有的文件,取出来Filefiles=demo.listFiles();1DataOutputStream对基本的输出流功能扩展,提供了基本数据类型的输出方法,也就是基本类型是序列化方法writeInt()writeDouble()是过滤器DOS FOS应用程序-过滤器-输出流-文件(Byte)writeInt(i)write()ff ffff fd2DataInputStream对基本的输入流(InputStream)功能扩展,提供基本类型的输入方法,就是基本类型的反序列化DataInputStream是过滤器,只是功能扩展,不能直接读取文件readInt()readDouble().认识文本和文本文件1)java的文本(char)是16位无符号整数,是字符的unicode编码2)文件是byte bybyte的数据序列3)文本文件是文本char序列按照某种(utf-8,utf-16be,gbk)方案序列化为byte的存储结果.7字符流(Reader Writer)1)字符的处理,一次处理一个字符(unicode)2)字符的底层仍然是基本的字节流3)字符流的基本实现:InputStreamReader:完成byte流解析为char流,按照编码OutputStreamWriter:提供char流到byte流,按照编码处理案例:io1.Demo54)字符流的过滤器是字符读写的功能扩展,极大的方便了文本的读写操作BufferedReader:readLine()PrintWriter:println()5)读取一个文本文件:InputStream is=new FileInputStream(gbk.txt);Reader in=new InputStreamReader(is);BufferedReader reader=new BufferedReader(in);or BufferedReaderin=new BufferedReader(new FileReader(filename);6)写出一个文本文件:PrintWriter out=new PrintWtirer(new FileWriter(filename);or PrintWriterout=new PrintWtirer(new OutputStreamWriter(new FileOutputStream(filename);7)系统的默认编码中文一般是GBK Stringencoding=System.getProperty(file.encoding);8对象的序列化:将Object转换为byte序列,就是序列化,反之叫反序列化1)序列化流,是过滤流ObjectOutputStream writeObject(Object)序列化对象ObjectInputStream readObject()对象的反序列化2)序列化接口:对象必须实现序列化接口才能进行序列化否则出现不能序列化的异常!3)J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- xx民族学院外墙装饰工程施工组织设计方案
- 教师招聘之《小学教师招聘》强化训练附答案详解【达标题】
- 教师招聘之《幼儿教师招聘》能力提升打印大全及完整答案详解一套
- 教师招聘之《小学教师招聘》题库练习备考题含答案详解【满分必刷】
- 2025年教师招聘之《小学教师招聘》考试题库【培优a卷】附答案详解
- 教师招聘之《小学教师招聘》练习题(一)附答案详解【a卷】
- 2025年四川天府新区党工委管委会工作机构所属事业单位选调10人笔试备考题库及答案详解一套
- 2025广东江门市司法局选调公务员2人考试备考试题及答案解析
- 2025泸州银行社会招聘(7月)笔试参考题库附答案解析
- 2025广东佛山市南海农商银行中层正职管理人员社会招聘考试参考题库附答案解析
- 2025年《畜禽屠宰生产企业事故隐患内部报告奖励制度》(修订版)
- DB62T 4342-2021 涉路工程安全评价技术规范
- 铁路交跨协议书
- 医院实验室生物安全委员会文件
- 医疗卫生行业从业人员资格及工作经历证明(6篇)
- 供应室消毒员培训课件
- 线虫病疫木及异常枯死松树处置方案枯死松树清理服务投标方案(两套方案)
- 电影院转让协议合同
- 花瓣儿鱼试题及答案
- 华为员工行为规范
- 2025-2031年中国第三方认证行业发展前景预测及投资方向研究报告
评论
0/150
提交评论