欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第8章输入输出流.ppt

    • 资源ID:4787465       资源大小:334.52KB        全文页数:21页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    第8章输入输出流.ppt

    JavaEE基础教程,第8章 输入输出流,8.1 获取文件和目录的属性,8.2 Java中的I/O流,8.3 字节流,8.4 字符流,Java EE基础教程,2,2023年5月15日星期一,通过允许程序读取文件的内容或者向文件中写入内容,可以使程序的开发更加灵活。要从文件、内存或网络读取信息,程序必须打开源的一个流;同样,通过打开至目标的一个流,并按顺序写入信息,程序可以向文件写入信息。,Java EE基础教程,3,2023年5月15日星期一,8.1 获取文件和目录的属性,在Java语言中,提供了获取和修改文件/目录属性的类java.io.File。File类的使用是与平台无关的,适用于不同的文件系统。在程序中,通过创建File类的对象来代表一个文件或目录,利用这个对象可以对文件或目录的属性进行有关操作。表8-1列举了File类的主要方法和说明。,返回,Java EE基础教程,4,2023年5月15日星期一,例8-1对文件和目录的操作程序清单:ch08FileAndDirectoryTest.javaimport java.io.File;public class FileAndDirectoryTest public static void main(String args)String filename=testFile;File f1=new File(filename);/ASystem.out.println(filename+是否存在:+f1.exists();System.out.println(filename+是文件吗:+f1.isFile();System.out.println(filename+最后修改时间:+f1.lastModified();System.out.println(filename+文件大小:+f1.length();String direname=testDire;File f2=new File(direname);/BSystem.out.println(direname+的绝对路径:+f2.getAbsolutePath();if(f2.isDirectory()/CString fileList=f2.list();/DSystem.out.println(direname+目录中的文件和目录包括:);for(int i=0;ifileList.length;i+)System.out.print(fileListi+”);,Java EE基础教程,5,2023年5月15日星期一,运行此程序前,在当前源程序所在的目录下创建名为“testFile”的文件名为“testDire”的目录,在目录testDire下创建文件doc1.doc、ex1.xls、txtq.txt和目录sample,则上述程序的运行结果如下所示:testFile是否存在:truetestFile是文件吗:truetestFile最后修改时间:1255623454453testFile文件大小:15testDire的绝对路径:D:MyEclipse 6.5workspacechap6testDiretestDire目录中的文件和目录包括:doc1.doc ex1.xlssampletxtq.txt 上述程序中,代码行A和B根据给定的文件/目录名创建File类的对象,代码行A至B之间输出f1对应的文件的有关属性;代码行C判断f2对应的是不是目录,代码行D开始,取出该目录下的所有文件名和目录名,并依次输出。,Java EE基础教程,6,2023年5月15日星期一,8.2 Java中的I/O流,8.2.1 I/O流的概念 流(stream)是一组有序的数据序列。根据数据流的流动方向,可以分为输入流和输出流;根据流动的内容,可以分为字节流和字符流。输入流的指向称为源,程序从指向源的输入流中读取数据。当程序开始读数据时,就会打开一个通向数据源的流,这个数据源可以是文件、内存或网络。比如:在程序中需要从文件a中读取数据,此时文件a就是数据源,在程序和文件a间的管道称为流,因为数据是从文件流向程序,所以称为输入流。输出流的指向是字节/字符流向的地方,程序通过向输出流中写入数据把信息传递到目的地。当程序需要写入数据时,就会打开一个流向目的地的流。比如:在程序中需要把一些数据写入文件b时,此时文件b就是数据的目的地,在程序和文件b之间的管道称为流,因为数据是从程序流向文件b,所以称为输出流。Java语言中提供了java.io包,使得读写文件和处理数据流非常容易。,返回,Java EE基础教程,7,2023年5月15日星期一,8.2.2 InputStream流 InputStream流是字节输入流的抽象类,是所有字节输入流的父类,这个类读取的是字节流。在java.io包中存在多个InputStream类的子类。本章会介绍它的子类:FileInputStream类。表8-2列出了该类的常用方法。,Java EE基础教程,8,2023年5月15日星期一,8.2.3 OutputStream流 OutputStream类是字节输出流的抽象类,是所有字节输出流的父类。该类接受的也是字节流。该类在java.io包中有很多子类。其中最重要的子类是FileOutputStream类。表8-3列出了该类的常用方法。,Java EE基础教程,9,2023年5月15日星期一,8.3 字节流,8.3.1 FileInputStream流 该类是InputStream类的子类,用于从磁盘文件中读取字节流数据。该类的所有方法都从InputStream类继承而来。下面举例说明如何使用这个类读取、显示文件的信息。例8-2 从文件in.txt中读取并显示文件的内容程序清单:ch08FileInExample.javaimport java.io.FileInputStream;import java.io.IOException;import java.io.File;public class FileInExample public static void main(String args)int rs;byte b=new byte10;/A,返回,Java EE基础教程,10,2023年5月15日星期一,tryFile f=new File(C:in.txt);FileInputStream fis=new FileInputStream(f);/Brs=fis.read(b,0,10);/Cwhile(rs0)String s=new String(b,0,rs);/DSystem.out.print(s);rs=fis.read(b,0,10);fis.close();/Ecatch(IOException e)e.printStackTrace();如果在C盘中存在该文件,文件的内容为“This is you English book!”,则程序的运行结果如下所示:This is you English book!,Java EE基础教程,11,2023年5月15日星期一,在使用FileInputStream类进行文件读取时,需要注意以下几点:1)待读取的文件一定要存在,否则会出现异常;2)文件的路径可以采用绝对路径和相对路径两种,例题中采用的是绝对路径;编程时,可以把待读取的文件放在程序文件所在的项目下,通过FileInputStream fis=new FileInputStream(in.txt);创建FileInputStream实例对象,有利于提高程序的可移植性;3)FileInputStream类既可以用来读取文本文件,也可以读取二进制文件,比如:图像、声音等;4)在不需要使用时,要及时关闭流对象,释放与它关联的所有系统资源。,Java EE基础教程,12,2023年5月15日星期一,8.3.2 FileOutputStream流 FileOutputStream类是OutputStream类的子类。它能够实现以字节形式将数据写入文件中。该类的所有方法都是从OutputStream类继承并重写的。在创建该类的实例对象时,与FileInputStream类相似,文件可以使用相对路径和绝对路径;但与FileInputStream类的区别是:如果文件不存在,则创建一个新的文件;如果文件存在,则把原来的文件删除,然后再创建一个新的文件。,Java EE基础教程,13,2023年5月15日星期一,例8-3 将文件notepad.exe的内容拷贝到note.exe文件中程序清单:ch08FileOutExample.javaimport java.io.*;public class FileOutExample public static void main(String args)int rs;byte b=new byte10;tryFileInputStream fis=new FileInputStream(notepad.exe);FileOutputStream fos=new FileOutputStream(note.exe);System.out.println(开始拷贝文件,请稍候.);rs=fis.read(b,0,10);/Awhile(rs0)fos.write(b,0,10);rs=fis.read(b,0,10);/BSystem.out.println(文件拷贝结束,谢谢!);fis.close();/Cfos.close();/Dcatch(IOException e)e.printStackTrace();,Java EE基础教程,14,2023年5月15日星期一,在上面的程序中,文件“notepad.exe”是Windows系统提供的的记事本应用程序,系统运行这个程序可以创建文本文件。分析上面的程序可知:首先根据提供的两个文件创建字节输入流对象fis和字节输出流对象fos,建立与磁盘文件的连接;如果文件“notepad.exe”文件不存在,会引发异常;不管“note.exe”文件是否存在,fos对象的创建都不会受影响。从代码行A至B行,首先通过流对象fis从文件“notepad.exe”中读取10个字节的内容,然后通过fos对象的write()方法,将内容写入与fos对象关联的“note.exe”文件中,直到读至文件的尾部。代码行C和D关闭两个流对象,释放它们占用的系统资源,同时将缓冲区中的内容保存到“note.exe”文件中。程序执行后,运行“note.exe”文件,发现它具有与“notepad.exe”文件同样的功能,说明文件拷贝是正确的。需要指出的是,用FileOutputStream类执行写文件操作时,只能从文件的开始部分写入,不能实现追加写入的功能;在完成相关操作后一定要及时关闭流对象。如果需要创建的文件已经存在,但它是一个目录,而不是一个常规文件,则抛出异常;或者该文件不存在,但无法创建它,抑或因为其他某些原因而无法打开它,也会抛出异常。另外,使用该类执行写入操作时,并不区分写入的是什么类型的文件。,Java EE基础教程,15,2023年5月15日星期一,8.4 字符流,前面介绍的FileInputStream类和FileOutputStream类只能处理普通的字节流。采用这种流在处理16位的Unicode码表示的字符流时很不方便,容易引起错误。java.io包中有专门用于处理字符流的类:Reader和Writer等。,返回,Java EE基础教程,16,2023年5月15日星期一,8.4.1 Reader流 该类是用于处理字符输入流类的父类,它是一个抽象类,不能实例化它的对象。表8-4列出了该类的常用方法。8.4.2 Writer流 该类是处理字符输出流的父类,Writer类定义了写入字符和字符数组的方法,与Reader类、InputStream类相似,在创建对象时会自动打开流,通过显式调用close()方法关闭流。表8-5列举了该类的常用方法。,Java EE基础教程,17,2023年5月15日星期一,8.4.3 FileReader流该类是Reader类的子类,它实现了从文件中读取字符数据,是文件字符输入流。与FileInputStream类相似,在创建FileReader对象时,如果给定路径上不存在所需的文件,则会出现异常。例8-4 将Word文件“java.txt”读出并输出到控制台。程序清单:ch08ReaderExample.javaimport java.io.*;public class ReaderExample public static void main(String args)try File f=new File(java.txt);FileReader fr=new FileReader(f);/Aint len=fr.read();/Bwhile(len=0)System.out.print(char)len);len=fr.read();,Java EE基础教程,18,2023年5月15日星期一,fr.close();/C catch(FileNotFoundException e)e.printStackTrace();catch(IOException e)e.printStackTrace();假定文件“java.txt”的内容是:“Java is a good OOP language.Java是一门面向对象的语言。”则执行上述程序后,输出的结果与上面的内容一致。说明用上述程序可以同时实现对英文和汉字的读取和显示。该程序的A行创建了字符输入流对象fr,建立文件“java.txt”与流对象的连接,打开“java.txt”文件。然后通过B行代码在文件中读取一个字符,如果已经读到文件尾则变量“len”的值为-1,通过判断“len”的值进行控制。C行代码关闭了该流对象,释放了该对象占用的所有系统资源。,Java EE基础教程,19,2023年5月15日星期一,8.4.4 FileWriter流该类是Writer类的子类,实现了将字符数据写入文件的功能,是文件字符输出流。如果需要写入的文件不存在,则会新建该文件,否则会删除旧文件,建立新的文件。下面通过例题介绍该类的使用。例8-5 创建5个2000之内的随机数,然后存储到文件“rand.txt”中。程序清单:ch08WriterExample.javaimport java.io.*;import java.util.Random;public class WriterExample public static void main(String args)Random rand=new Random();/Atry FileWriter fw=new FileWriter(rand.txt);/Bint rs;for(int i=0;i5;i+)rs=rand.nextInt(2000);/Cfw.write(String.valueOf(rs);/D,Java EE基础教程,20,2023年5月15日星期一,fw.write(JavaEE教程);/Efw.close();/F catch(IOException e)e.printStackTrace();该程序代码使用了Random类产生随机数,使用了类FileWriter进行文件的写入。在代码行A行创建一个java.uti.Random对象,C行代码使用该类的nextInt()方法产生一个小于2000的随机数;在代码行B创建了一个FileWriter类的对象,D行代码利用前面介绍的方法将产生的随机整数转换为字符串写入文件中;代码行E直接在文件中写入字符串;代码行F关闭流对象,将缓冲区的内容写入文件。,Java EE基础教程,21,2023年5月15日星期一,The End,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开