电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

输入输出流与文件操作课件

27页
  • 卖家[上传人]:F****n
  • 文档编号:88170298
  • 上传时间:2019-04-20
  • 文档格式:PPT
  • 文档大小:353KB
  • / 27 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第八章 输入输出流与文件操作,目 录,输入输出流的分类,目录和文件管理,文件的随机访问,其他常用的流,字符流,字节流,输入输出流的分类,Java流的概念 Java使用流(stream)来执行输入输出(I/O)的功能,流是一 种数据的源头和目的之间的通信途径。 标准输入输出 Java系统事先定义好两个流对象,分别与系统的标准输入 和标准输出相联系,它们是System. in和System.out System是Java中一个功能很强大的类,利用它可以获得很 多Java运行时的系统信息。,输出流(程序写出数据),输入流(程序读入数据),Java流类体系结构1,Java流类体系结构2,Java流类体系结构3,Java流类体系结构4,Java流的概念,输入输出流的分类,【例8.1】标准输入输出举例。,标准输入输出,输入输出流的分类,import java.io.*; public class IODemo public static void main(String args) throws IOException int b; int count=0; while(b=System.in.r

      2、ead()!=-1)count+;System.out.print(char)b); System.out.println(); System.out.println(“program end“); ,运行结果: 输入:a,b,c,d 输出:a,b,c,d 输入:Z 输出: program end,目录和文件管理,文件名的处理,File类,文件或目录的生成,文件属性测试,普通文件信息和工具,目录操作,public File(String path):如果path是实际存在的路径,则该File对象表示的是目录;如果path是文件名,则该File对象表示的是文件。 public File(String path,String name):path是路径名,name是文件名(不可为空)。 public File(File dir,String name):dir是路径名,name是文件名。,String getName( ):得到一个文件的名称(不包括路径)。 String getPath( ):得到一个文件的路径名。 String getAbsolutePath( ):得到一个文件的绝对路

      3、径名。 String getParent( ):得到一个文件的上一级目录名。 String renameTo(File newName):将当前文件名更名为给定文件的完整路径。,【例8.2】,boolean exists( ):测试当前File对象所指示的文件或目录是否存在,若存在,返回True。 boolean createNewFile():创建当前文件。 boolean canWrite( ):测试当前文件是否可写。 boolean canRead( ):测试当前文件是否可读。 boolean isFile( ):测试当前文件是否是文件(不是目录)。 boolean isDirectory( ):测试当前文件是否是目录,若为目录则返回True。,【例8.3】,long lastModified( ):得到文件最近一次修改的时间。 long length( ):得到文件的长度,以字节为单位,若不存在,返回0。 boolean delete( ):删除File对象代表的文件或目录,目录需为空。删除成功,返回True。,boolean mkdir():生成一个由该对象指定的路径(新目录

      4、),若成功,返回True。 boolean mkdirs():生成一个新的目录,包含子目录。若成功,返回true。 boolean renameTo(File newName):将当前File对象所代表的路径名改为newName所代表的路径名。若成功,返回true。 String list():列出当前目录下的文件。,【例8.4】,File类的应用,【例8.5】,【例8.6】,字节流,顺序读/写文件(FileInputStream与FileOutputStream),FileInputStream类从磁盘文件读取数据。常用的构造方法有: FileInputStream(String name):打开文件name用来读取数据。 如:FileInputStream f =new FileInputStream(“c:/test.txt“); FileInputStream(File file):打开文件file用来读取数据。 如:File f=new File(“c:/test.txt“); FileInputStream f1=new FileinputStream(f);,FileOu

      5、tputStream类创建文件(如果文件不存在),并将数据写入文件。FileOutputStream类常用的构造方法有: FileOutputStream(String name):打开文件name用来写入数据。 如:FileOutputStream f=new FileOutputStream (“c:/test.txt“); FileOutputStream(File file):打开文件file用来写入数据。 如:File f =new File(“c:/test.txt“); FileOutputStream f1=new FileOutputStream (f); FileOutputStream(String name,Boolean append):打开文件name用来写入数据,若append为true,则写入的数据会加到原有文件后面,否则,覆盖原有的文件。 如:FileOutputStream f =new FileOutputStream(“c:/test.txt“,true);,字节流,字节流,【例8.7】将FileIO.java复制为FileExam.java.b

      6、ak。,import java.io.*; public class FileIO public static void main(String args) FileInputStream inFile=null; FileOutputStream outFile=null; tryinFile=new FileInputStream(“FileIO.java“); outFile=new FileOutputStream(“FileExam.java.bak“); int data; while(data=inFile.read()!=-1)outFile.write(data); catch(FileNotFoundException e)System.out.println(e.getMessage(); catch(IOException e)System.out.println(e.getMessage(); finallyif(inFile!=null)tryinFile.close();catch(IOException e) if(outFile!=null)tryou

      7、tFile.close();catch(IOException e) ,程序运行结果,【解题分析】以下问题的求解过程可分解如下: 先打开文件FileExam.java 用read()将其内容逐字节读取出来(如果返回值为-1,则表明已到达文件尾端) 再用write()将读出的字节逐一写入另一个文件FileExam.java.bak中 若文件无法打开(例如FileExam.java不存在)或无法生成(FileExam.java.bak),则抛出FileNotFoundException异常,若读写出错,则抛出IOException异常。 最后,在finally中关闭文件。,在使用FileInputStream类时,若关联的目录或者文件不存在,Java会抛出一个IOException异常。程序可以使用try-catch块检测和处理捕捉到的异常。 为了把一个文件输入流对象与一个文件关联起来,可以使用下列的代码段来处理Java产生的IOEception异常。 例如:try FileInputStream fis=new FileInputStream(“java.txt“); catch(IOE

      8、xception e) System.out.println(“File Exception:“+e); ,注:,字节流,字节流,ByteArrayInputStream 将字节数组用作源,并在该数组中执行读 操作。 它有两种构造方法。第一种构造方法将字节数组作为参数。 ByteArrayInputStream(byte buffer):生成一个字节数组的输入流,并指定一个字节数组buffer为此输入流的流缓冲区。 如:ByteArrayInputStream b =new ByteArrayInputStream(buf); 另外一种构造方法是从指定的字节数组来创建。 ByteArrayinputStream b =new ByteArrayinputStream(buf,off,len); 其中off是要读取的第一个字节的偏移,len是要读取数组的字节数;,ByteArrayOutputStream有2种构造方法。 ByteArrayOutputStream():生成一个字节数组的输出流,其缓冲区的默认初始大小为32字节,若有需要,缓冲区的大小会随之增加。 如:ByteArrayO

      9、utPutStream b=new ByteArrayOutputStream() ; ByteArrayOutputStream(int size):创建32个字节的缓冲器用于储存数据,但分配size字节的初始大小给此缓冲区。 如:ByteArrayOutputStream b1=new ByteArrayOutputStream(size);创建大小为size的缓冲器,ByteArrayOutputStream的一些常用方法: int size():返回此流缓冲区的大小。 byte toByteArray():生成一个新的字节数组,并将流的内容复制到此字节数组。 String toString():将流的内容转换为String对象。,【例8.8】程序读入文件ByteIO.java,将其内容写入内存中(一个字节数组),接着转换为String对象。,字节流,import java.io.*; import java.util.*; public class ByteIO public static void main(String args) tryFile inFile=new File(“ByteIO.java“); FileInputStream inData=new FileInputStream(inFile); ByteArrayOutputStream dataArray=new ByteArrayOutputStream(); int data; while(data=inData.read()!=-1)dataArray.write(data); inData.close(); String dataStr=dataArray.toString(); catch(IOException e)System.out.println(e.getMessage(); ,字节流,缓冲区流BufferedInputStream和BufferedOutputStream,BufferedInp

      《输入输出流与文件操作课件》由会员F****n分享,可在线阅读,更多相关《输入输出流与文件操作课件》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.