欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Java的输入输出.docx

    • 资源ID:3913976       资源大小:22.01KB        全文页数:13页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java的输入输出.docx

    1、Java的输入输出Java I/O 關鍵詞(一)部分1.File:描述了文件本身的属性,无关流操作。ifFile, isAbsolute(绝对路径否), delete, isDirectory, list(字符串形式列出目录内容),listFiles(以File对象数组形式返回文件列表) ,mkdir, mkdirs(创建目录以及此目录的所有父目录)。FilenameFilter 接口:String list(FilenameFilter ff) 2.InputStream和OutputStream,子节流基础,抛出IOException。3.FileInputStream:从文件中读取字节。

    2、FileInputStream可用路径或File对象构造,一旦对象建立,文件就被打开并用于读取。4.FileOutputStream:写字节到文件的输出流。创建一个FileOutputStream对象并不依赖已存在的文件,如果对象创建时文件不存在,构造函数会自动建立这个文件。5.ByteArrayInputStream:使用字节数组作为输入。对应的有ByteArrayOutputStream。6.过滤的字节流:如缓冲、字符转化、原始数据转化等。他们都基于FilterOutputStream和FilterInputStream。比如缓冲字节流:BufferedInputStream(其中有mar

    3、k和reset用来定位值得注意)、BufferedOutputStream和PushbackInputStream(回退:读取一个字节,然后把它返回到流中);PrintStream 提供了格式化的能力;RandomAccessFile 不是从InputStream和OutputStream派生的,而是实现了DataInput和DataOutput接口,封装了一个随机存取的文件。7.字符流:Reader、Writer8.FileReader和FileWriter:文件操作 9.CharArrayReader和CharArrayReader:以字符数组为源/目标的流10.BufferedReade

    4、r和BufferedWriter:缓冲读写11.PushBackReader,PrintWriter等。12.使用StreamTokenizer在输入流中寻找模式匹配:StreamTokenizer(Reader inStream)13.序列化:实现接口Serializable达到序列化的目的,实现Externalizable接口以手工控制序列化和反序列化的工作(readExternal和writeExternal)。ObjectOutput接口-ObjectOutputStream和ObjectInput接口-ObjectInputStream(二)部分1.方便的IO操作是每个成功的语言所必

    5、须具有的,但是要有好的IO库可不是件容易的事情,因为不仅有三种不同种类的IO需要考虑(文件、控制台、网络连接),而且需要通过大量不同的方式与它们通信(顺序、随机访问、二进制、字符、按行、按字等等)。2.Java库的IO类分割为输入与输出两个部分,通过继承,从InputStream(输入流)衍生的所有类都拥有名为read()的基本方法,用于读取单个字节或者字节数组。类似地,从OutputStream衍生的所有类都拥有基本方法write(),用于写入单个字节或者字节数组。然而,我们通常不会用到这些方法;它们之所以存在,是因为更复杂的类可以利用它们,以便提供一个更有用的接口。因此,我们很少用单个类创

    6、建自己的系统对象。一般情况下,我们都是将多个对象重叠在一起,提供自己期望的功能。我们之所以感到Java的流库(Stream Library)异常复杂,正是由于为了创建单独一个结果流,却需要创建多个对象的缘故。很有必要按照功能对类进行分类。库的设计者首先决定与输入有关的所有类都从InputStream继承,而与输出有关的所有类都从OutputStream继承3.InputStream 的类型1) ByteArrayInputStream (字节数组)允许内存中的一个缓冲区作为InputStream使用 从中提取字节的缓冲区作为一个数据源使用。通过将其同一个FilterInputStream对象连

    7、接,可提供一个有用的接口(2) StringBufferInputStream (String对象)将一个String转换成InputStream 一个String(字串)。基础的实施方案实际采用一个StringBuffer(字串缓冲)作为一个数据源使用。通过将其同一个FilterInputStream对象连接,可提供一个有用的接口(3) 文件FileInputStream 用于从文件读取信息 代表文件名的一个String,或者一个File或FileDescriptor对象作为一个数据源使用。通过将其同一个FilterInputStream对象连接,可提供一个有用的接口(4) “管道”,它的工

    8、作原理与现实生活中的管道类似:将一些东西置入一端,它们在另一端出来。 (5) 一系列其他流,以便我们将其统一收集到单独一个流内。(6) 其他起源地,如Internet4.OutputStream的类型(1).ByteArrayOutputStream 在内存中创建一个缓冲区。我们发送给流的所有数据都会置入这个缓冲区。 可选缓冲区的初始大小用于指出数据的目的地。若将其同FilterOutputStream对象连接到一起,可提供一个有用的接口(2).FileOutputStream 将信息发给一个文件 用一个String代表文件名,或选用一个File或FileDescriptor对象用于指出数据的

    9、目的地。若将其同FilterOutputStream对象连接到一起,可提供一个有用的接口5.FilterInputStream类型(1).DataInputStream ,与DataOutputStream搭配使用,可以按照可移植方式从流读取基本数据类型,其构造函数参数为InputStream;(2).BufferedInputstream, 可以防止每次读取是都得进行实际的写操作,代表使用缓冲区,构造函数参数仍为InputStream;6.FilterOutputStream类型(1).DataOutputStream.(2).PrintStream,用于产生格式化输出,其中DataOutp

    10、utStream处理数据的存储,PrintStream处理显示,构造函数参数为OutputStream;(3).BufferedOutputStream.7.Reader和Writer(提供兼容Unicode与面向字符的IO功能)(1).为了关联字节层次结构和字符层次结构需要适配器InputStreamReader 可以把 InputStream 转换为Reader,OutputStreamReader 可以把OutputStream 转换为 Writer(2).FileInputStream 对应 FileReader;FileOutputStream 对应 FileWriter;Strin

    11、gBufferInputStream 对应 StringReader;(3).FilterInputStream 对应 FilterReaderFilterOutputStream 对应 FilterWriterBufferedInputStream 对应 BufferedReaderBufferedOutputStream 对应 BufferedWriterPrintStream 对应 PrintWriterStreamTokenizer 对应 StreamTokenizer8.操作Java的IO的一般步骤:(1).首先创建数据源IO,(2).然后根据需要创建需要包装的IO类,其构造函数参数

    12、为已创建的数据源IO;(3).操作得到的IO句柄;示例程序:我们以创建一个具有缓冲的文件输入流为例,假定需要从磁盘读取文件“E:Javadata.txt”: / 创建一个FileInputStream:FileInputStream fileInput = new FileInputStream(“E:Javadata.txt”); / 创建一个BufferedInputStream:BufferedInputStream bufferedInput = new BufferedInputStream(fileInput); / 现在得到的bufferedInput即是具有缓冲的文件输入流 或

    13、者进一步简写如下:InputStream input = new BufferedInputStream(new FileInputStream(“E:Javadata.txt”);/ 现在得到的input即是具有缓冲的文件输入流9.常见读写示例:readLine()是BufferedReader类的一个方法,它每次从缓冲里读一行数据。BufferedReader流能够读取文本行,通过向BufferedReader传递一个Reader对象,来创建一个BufferedReader对象,之所以这样做是因为FileReader没有提供读取文本行的功能.(从字符输入流中读取文本,缓冲各个字符,从而提供

    14、字符、数组和行的高效读取。)(1).读写文本文件,程序功能:读取一文本文件到内存中的String类型变量中,在终端显示内容,并复制内容到另外的文本文件中package MyJava.Base;import java.io.*;public class TextReaderDemo /下面也可以这样写( String args) public static void main(String args)throws IOException /异常处理 /读取文件中内容到BufferedReader; BufferedReader in=new BufferedReader(new FileRead

    15、er(E:JavaJCreator2.5加密解密.txt);String str=new String(); / 定义数组String s=new String(); /定义数组while(s=in.readLine()!=null) /readline()表随指针逐行读取str+=s+n; /表在每行后加一回车,并链接所有内容in.close(); /读取结束后,关闭流System.out.println(str);/复制内容到另外的文本文件中PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(E:JavaJCr

    16、eator2.5加密解密(copyt).txt);BufferedReader outbfreader=new BufferedReader(new StringReader(str);/outbfreader.readline()缓冲各个字符,从而提供字符、数组和行的高效读取while(s=outbfreader.readLine() )!=null) out.println(s); out.close();(2).从控制台输入,Java中从控制台输入比起C+好像复杂多了,毕竟C+只需要cin和cout就行了,Java有点复杂BufferedReader stdin=new Buffered

    17、Reader(new InputStreamReader(System.in);String str=stdin.readLine();/ system.in是终端窗口输入,通俗来说就是键盘输入,有了这句则可以在键盘上进行输入,且输入后的值会保存在str中/就是先将System.in转化成InputStreamReader类型的,然后在将InputStreamReader转化成BufferedReader类型的;/ BufferedReader: 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取. InputStreamReader: InputStreamReader

    18、是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,否则可能接受平台默认的字符集.(3).从内存中读取StringReader in2=new StringReader(str); /其中str为String类型int ch;while(ch=in2.read()!=-1) /read()读取单一字符。 System.out.printl(char)ch); /强类型转换,并输出(4).读取二进制文件,读写二进制文件主要是通过字节流,而不是字符流,二进制文件可是图片之类的,下面的程序功能是复制一副图片package MyJa

    19、va.Base;import java.io.*;public class BinaryReaderDemopublic static void main(String args) throws IOException/读取图片文件数据到InputStream;/byte bt1024;/FileInputStream in=new FileInputStream(new File(E:JavaJCreator2.5加密解密.txt);File file=new File(C:Documents and Settingsluliuyan_1985My DocumentsMy Picturesc

    20、s.jpg);if(!file.exists() & !file.canRead()System.out.println(file dont exist or file cannot read!);System.exit(1);long len=file.length();byte buffer=new byte(int)len;FileInputStream filein=new FileInputStream(file);/File file2=new File(E:JavaJCreator2.5cs(copy).jpg);if(!file2.exists()file2.createNew

    21、File();FileOutputStream fileout=new FileOutputStream(file2,true);int ch=0;/方式一:/*while(ch=filein.read()!=-1)fileout.write(ch);*/方式二,执行效率比方式一高:/*while(ch=filein.read(buffer)!=-1)fileout.write(buffer);*/方式三:while(ch=filein.read(buffer,0,(int)len)!=-1)fileout.write(buffer,0,(int)len);filein.close();fil

    22、eout.close();7.Java的序列化(1).序列化的过程就是对象写入字节流和从字节流中读取对象。将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其保存到文件中,管道到另一线程中或通过网络连接将对象数据发送到另一主机。对象序列化功能非常简单、强大,在RMI、Socket、JMS、EJB都有应用。对象序列化问题在网络编程中并不是最激动人心的课题,但却相当重要,具有许多实用意义。一:对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。二:java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个

    23、对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的深复制,即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。java序列化比较简单,通常不需要编写保存和恢复对象状态的定制代码。实现java.io.Serializable接口的类对象可以转换成字节流或从字节流恢复,不需要在类中增加任何代码。只有极少数情况下才需要定制代码保存或恢复对象状态。这里要注意:不是每个类都可序列化,有些类是不能序列化的,例如涉及线程的类与特定JVM有非常复杂的关系(2).序列化的实例(过段时间给出集合容器方面知识的小程序)(三)部分大家讨论jav

    24、a i/o库很久了, PaleSting也刚发了系列文章,但我估计还是有些读者会觉得java i/o库难以琢磨,所以也来凑凑热闹,说说我认为的学习java i/o库要掌握的三个关键知识点。知识点一: 四大等级结构java语言的i/o库提供了四大等级结构:InputStream,OutputStream,Reader,Writer四个系列的类。InputStream和OutputStream处理8位字节流数据, Reader和Writer处理16位的字符流数据。InputStream和Reader处理输入, OutputStream和Writer处理输出。大家一定要到J2SE文档中看看这四大等级

    25、结构的类继承体系。除了这四大系列类,i/o库还提供了少数的辅助类,其中比较重要的是InputStreamReader和OutputStreamWriter。InputStreamReader把InputStream适配为Reader, OutputStreamWriter把OutputStream适配为Writer;这样就架起了字节流处理类和字符流处理类间的桥梁。您使用i/o库时,只要按以上的规则,到相应的类体系中寻找您需要的类即可。知识点二: 适配功能java i/o库中的继承不是普通的继承;它的继承模式分为两种,其一就是Adapter模式(具体分析请参见一书) 。下面以InputStrea

    26、m类体系为例进行说明。InputStream有7个直接子类:ByteArrayInputStream,FileInputStream,PipedInputStream,StringBufferInputStream,FilterInputStream,ObjectInputStream和SequenceInputStream。前四个采用了Adapter模式,如FileInputStream部分代码如下:Public class FileInputStream extends InputStream /* File Descriptor - handle to the open file */

    27、private FileDescriptor fd; public FileInputStream(FileDescriptor fdObj) SecurityManager security = System.getSecurityManager(); if (fdObj = null) throw new NullPointerException(); if (security != null) security.checkRead(fdObj); fd = fdObj; /其他代码可见,FileInputStream继承了InputStream,组合了FileDescriptor,采用的

    28、是对象Adapter模式。我们学习i/o库时,主要应该掌握这四个对象Adapter模式的适配源: ByteArrayInputStream的适配源是Byte数组, FileInputStream的适配源是File对象, PipedInputStream的适配源是PipedOutputStream对象, StringBufferInputStream的适配源是String对象。其它三个系列类的学习方法与此相同。知识点三: Decorator功能InputStream的其它三个直接子类采用的是Decorator模式,中描述得比较清楚,其实我们不用管它采用什么模式,看看代码就明白了。 FilterI

    29、nputStream部分代码如下:Public class FilterInputStream extends InputStream /* * The input stream to be filtered. */ protected InputStream in; protected FilterInputStream(InputStream in) this.in = in; /其它代码 看清楚没有? FilterInputStream继承了InputStream,也引用了InputStream,而它有四个子类,这就是所谓的Decorator模式。我们暂时可以不管为什么要用Decorator模式,但我们现在应该知道:因为InputStream还有其它的几个子类,所以我们可以将其它子类作为参数来构造FilterInputStream对象!这是我们开发时常用的功能,代码示例如下:/从密钥文件中读密钥 SecretKey key=null; ObjectInputStream keyFile=new ObjectInputStream( new FileInputStream(


    注意事项

    本文(Java的输入输出.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开