




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
输入/输出,本章内容,FileReader类与FileWriter类BufferedReader类与BufferedWriter类DataInputStream类与DataOutputStream类ObjectInputStream类与ObjectOutputStream类File类RandomAccessFile类序列化与克隆,I/O流的基本原理与分类,流:连接到文件的“管道”,分为输入流和输出流。Java应用程序使用输入流对象和输出流对象来完成数据的读写。,广义文件:磁盘文件,键盘,显示器,网络等,形象地说,输入流对象和输出流对象是两个管道,当需要读写文件时就打开阀门(调用write()方法和read()方法),I/O流分类,1根据数据的流动方向分为输入流与输出流2根据流处理的数据类型可分为字节流【二进制数据,声音图像等】与字符流【文本数据】。,节点流与处理流,根据流的功能层次分为节点流(底层流)与过滤流(上层流)节点流一般用于直接从指定的位置进行读/写操作,例如磁盘文件,内存区域,网络连接等。过滤流(也称处理流)用于对其他输入/输出流进行封装,是面向用户的。在实际应用中,通常将节点流与过滤流结合起来使用。,节点流,下表中所有的字符流都派生自Reader或Writer类,字节流都派生自InputStream或OutputStream,处理流,文件流:FileReader类与FileWriter类,以字符为单位读写文本文件,publicFileReader(Stringfilename)publicFileReader(Filefilename)publicFileWriter(Stringfilename)publicFileWriter(Filefilename),importjava.io.*;publicclassEpublicstaticvoidmain(Stringargs)chara=四月十二日10点发起总攻.toCharArray();/转换为字符数组intn=0,m=0;tryFilef=newFile(secret.txt);for(inti=0;ia.length;i+)ai=(char)(aiR);/按位异或,加密FileWriterout=newFileWriter(f);out.write(a,0,a.length);/将a中所有字符写到文件中out.close();FileReaderin=newFileReader(f);chartom=newchar10;System.out.println(密文:);while(n=in.read(tom,0,10)!=-1)/一次读10个字符,放到数组中,n为实际读到字符的个数Strings=newString(tom,0,n);/将字符数组转化为字符串System.out.println(s);,in.close();in=newFileReader(f);System.out.println(开始解密:);System.out.println(明文:);while(n=in.read(tom,0,10)!=-1)for(inti=0;in;i+)tomi=(char)(tomiR);Strings=newString(tom,0,n);System.out.println(s);in.close();catch(IOExceptione),缓存流:BufferedReader类与BufferedWriter类,能够以行为单位读写文件,publicBufferedReader(Readerin)publicBufferedWriter(Writerout),缓存,文件,底层流,上层流,数据流:DataInputStream类和DataOutputStream类,publicDataInputStream(InputStreamin)publicDataOutputStream(OutputStreamout),DataInputStream类和DataOutputStream类提供了读写数值数据的方法,File类,1File类是同文件或者目录相关的一个类。2File类的构造函数:,publicFile(Stringpathname)/使用pathname指定的路径创建一个File对象publicFile(Stringparent,Stringchild)/使用parent+child指定的路径创建一个File对象publicFile(Fileparent,Stringchild)/使用parent.toString()+child指定的路径创建一个File对象,Java虚拟机是根据构造函数指定的字符串来和实际文件或文件夹关联。如果文件或文件夹存在,则关联成功,否则不发生关联。,File类,3文件或目录的创建、删除4列出目录中的文件,publicStringlist()/用字符串的形式返回目录下所有的文件publicStringlist(FilenameFilterobj)/用字符串的形式返回目录下指定类型的文件。,5运行可执行文件,File构造方法举例,importjava.io.*;publicclassEpublicstaticvoidmain(Stringargs)Filef1=newFile(“D:3000a.java”);/假设不存在该文件Filef2=newFile(c:1000);System.out.println(f1.getName()+的长度:+f1.length();System.out.println(f1.getName()+绝对路径:+f1.getAbsolutePath();System.out.println(f2.getName()+“是文件吗:+f2.isFile();,a.java的长度:0a.java绝对路径:D:3000a.java1000是文件吗:false,文件与目录创建举例,importjava.io.*;publicclassBpublicstaticvoidmain(Stringargs)Filef1=newFile(E:javaa.java);tryf1.createNewFile();catch(Exceptione)f1=newFile(E:javab.java);tryf1.mkdir();catch(Exceptione),列举目录下的文件举例,importjava.io.*;publicclassEpublicstaticvoidmain(Stringargs)Filedir=newFile(.);FileAcceptacceptCondition=newFileAccept(java);StringfileName=dir.list(acceptCondition);for(inti=0;ifileName.length;i+)System.out.println(fileNamei);classFileAcceptimplementsFilenameFilterStringstr=null;FileAccept(Strings)/s用于指定文件的后缀名str=.+s;publicbooleanaccept(Filedir,Stringname)returnname.endsWith(str);,随机存取文件:RandomAccessFile类,1RandomAccessFile类创建的对象是双向流2RandomAccessFile类提供了随机读写文件的方法3RandomAccessFile类的构造方法,publicRandomAccessFile(Stringname,Stringmode)/name是文件名,mode是读写文件的方式publicRandomAccessFile(Filefile,Stringmode),将对象转换为字节流保存起来,并在日后还原这个对象,这种机制叫做对象序列化。将一个对象保存到永久存储设备上称为持续性。一个对象要想能够实现序列化,必须实现Serializable接口或Externalizable接口。,对象序列化,对象序列化,当一个对象被序列化时,只保存对象的非静态成员变量,不能保存任何的成员方法和静态的成员变量。如果一个对象的成员变量是一个对象,那么这个对象的数据成员也会被保存。如果一个可序列化的对象包含对某个不可序列化的对象的引用,那么整个序列化操作将会失败,并且会抛出一个NotSerializableException。我们可以将这个引用用关键词transient标记,那么对象仍然可以序列化。,ObjectInputStream类和ObjectOutputStream类,ObjectInputStream类和ObjectOutputStream类提供了读写对象的方法,publicObjectInputStream(In
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环境保护行业劳务分包合同
- 公司团队建设活动组织与服务合同
- 委托接送子女上下学服务合同协议书范本模板5篇
- 1050字工程造价咨询委托合同7篇
- 红木购销合同范本与红砖购销合同7篇
- 安徽雅高加盟合同7篇
- 化肥代加工合同范本9篇
- 房车改装合同协议书
- 地板打蜡合同协议书样本
- 拆除居间合同协议书范本
- 2024年浙江省《辅警招聘考试必刷500题》考试题库必背附答案
- 教师学习《中小学教育惩戒规则(试行)》心得体会
- 2025年浙江温州市工业投资集团所属温州快鹿集团公司招聘笔试参考题库附带答案详解
- GB/T 21369-2024火力发电企业能源计量器具配备和管理要求
- 企业家精神理论演进与展望
- 2025年陕煤集团招聘笔试参考题库含答案解析
- 科技行业人工智能与机器学习应用方案
- 国家级职业资格考试题库管理办法
- 2024-2030年中国审计服务行业竞争格局及投资模式分析报告
- 拍卖师资格考试题库及答案(答案附后面)
- 城市轨道交通安全生产
评论
0/150
提交评论