《输入输出new》PPT课件.ppt_第1页
《输入输出new》PPT课件.ppt_第2页
《输入输出new》PPT课件.ppt_第3页
《输入输出new》PPT课件.ppt_第4页
《输入输出new》PPT课件.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章 Java输入输出 1 输入输出流的概念 文件数据流 缓冲区数据流 数据数据流 管道数据流和对象流 通过本讲的学习 同学们可以在java程序中实现随意地输入输出 2 掌握I O流层次结构中类间的层次关系以及利用这些类进行输入输出处理 难重点 10 1输入 输出类库10 2标准输入 输出及标准错误10 3文件操作 10 1输入 输出类库 Java的输入输出功能必须借助于输入输出类库java io包来实现 这个包中的类大部分是用来完成流式输入输出的类 1 流 流是指在计算机的输入与输出之间的数据的序列 Java中的数据流根据处理数据的不同分为位流 字节流 和字符流 字节流按照字节 8位 传输 字符流按照字符 16位 传输 就流的运动方向而言 流可分为输入流 inputstream 和输出流 outputstream 输入流代表从外设流入计算机的数据序列 输出流代表从计算机流向外设的数据序列 流 程序 外设之间的关系 数据 键盘 程序 输入流 输出流 数据 打印机 显示器 节点流 对应具体数据存放的地方或从特定的地方读写的流类称为节点流 如文件 磁盘或一块内存区域 管道等 处理流 过滤流 使用节点流作为输入或输出 过滤流是使用一个已经存在的输入流或输出流连接创建的 常用的字节型的节点流有 文件 FileInputStream FileOutputStream内存 数组 ByteArrayInputStream ByteArrayOutputStream管道 PipedInputStream PipedOutputStream常用的字符型的节点流有 文件 FileReader FileWriter内存 数组 CharArrayReader CharArrayWriter内存 字符串 StringReader StringWriter管道 PipedReader PipedWriter FileInputStream和FileOutputStream 节点流 用于从文件中读取或往文件中写入字节流 如果在构造FileOutputStream时 文件已经存在 则覆盖这个文件 BufferedInputStream和BufferedOutputStream 过滤流 需要使用已经存在的节点流来构造 提供带缓冲的读写 提高了读写的效率 DataInputStream和DataOutputStream 过滤流 需要使用已经存在的节点流来构造 提供了读写Java中的基本数据类型的功能 PipedInputStream和PipedOutputStream 管道流 用于线程间的通信 一个线程的PipedInputStream对象从另一个线程的PipedOutputStream对象读取输入 要使管道流有用 必须同时构造管道输入流和管道输出流 2输入输出流类 在Java的流类中 最基本的类有两个 输入流类InputStream和输出流类OutputStream 这两个是具有最基本的输入输出功能的抽象类 其他流类都是为了方便处理各种特定流而设置的 属于InputStream或OutputStream的子类 InputStream类 intread longskip voidmark voidclose voidreset InputStreamFileInputStreamFilterInputStreamDataInputStreamBufferedInputStream InputStream类的主要方法 InputStream子类的继承关系 OutputStream类 voidwrite voidflush voidclose OutputStreamFileOutputStreamFilterOutputStreamBufferedOutputStreamPrintStreamDataOutputStream OutputStream类的主要方法 OutputStream子类的继承关系 Reader类 intread longskip voidmark voidclose voidreset ReaderBufferedReaderInputStreamReaderFileReader Reader类的主要方法 Reader子类的继承关系 Writer类 voidwrite voidflash voidclose WriterPrintWriterBufferedWriterOutputStreamWriterFileWriter Writer类的主要方法 Writer子类的继承关系 10 2标准输入输出及标准错误 Java系统预先定义好3个流对象分别表示标准输出设备 标准输入设备和标准错误设备 它们分别是System out System in和System err System out是System的一个静态属性 属于PrintStream类对象 用于输出字节数据流 对应标准输出设备 屏幕 System in也是System的一个静态属性 属于InputStream类对象 用于输入字节数据流 对应标准输入设备 键盘 System err也是System的一个静态属性 属于PrintStream类对象 用于系统错误信息的输出 对应屏幕 1标准输入 Java的标准输入设备键盘用System in表示 System in属于InputStream类对象 当需要从键盘输入数据时 可以直接使用该类的read 方法或子类定义的其他方法 Java实例 从键盘输入字符 importjava io publicclassStandardIn1 publicstaticvoidmain String args throwsIOException charc System out println 输入一个字符 c char System in read System out print 输入的字符是 c 例 利用read 语句暂缓程序运行 importjava io IOException publicclassStandardIn2 publicstaticvoidmain String args throwsIOException for inti 1 i 5 i System out println i System out println 按回车键继续 System in read System out print 程序继续运行 例 输入字符串 importjava io publicclassStandardIn3 publicstaticvoidmain String args throwsIOException InputStreamReaderiin newInputStreamReader System in BufferedReaderbin newBufferedReader iin Strings floatf inti booleanb System out println 输入任一字符串 s bin readLine System out println 输入浮点数 f Float parseFloat bin readLine System out println 输入整数 i Integer parseInt bin readLine System out println 输入布尔量 b newBoolean bin readLine booleanValue System out println 输入的字符串 s System out println 输入的浮点数 f System out println 输入的整数 i System out println 输入的布尔量 b 2标准输出 Java的标准输入设备 显示器用System out表示 System out属于PrintStream类对象 利用PrintStream类的print 或println 方法可以非常方便地输出各类数据 这两个方法的唯一区别是print 输出后不换行 而println 方法输出完毕后要换行 3标准错误 运行或编译Java程序时 各种错误信息输出到标准错误设备 即显示器 在Java中 标准错误设备用System err表示 System err属于PrintStream类对象 4系统属性 classprop publicstaticvoidmain Stringargs Stringprefix System getProperty user dir System getProperty file separator System out println prefix importjava util publicclassprops publicstaticvoidmain Stringargs Propertiesp System getProperties Enumerations p propertyNames 属性名称枚举while s hasMoreElements Stringpname String s nextElement 取出各个属性名称Stringpv System getProperty pname 获取属性值System out println pname pv 4系统属性 其部分输出如下 java runtime nameJava TM 2RuntimeEnvironment StandardEditionsun boot library pathC JDK1 3 JRE binjava vm version1 3 0 Cos nameWindows98user homeC WINDOWSfile encodingGBKjava specification version1 3user nameXuYingxiaojava class path user regionCN 4系统属性 10 3文件操作 在程序中要对磁盘文件或目录进行操作 首先要对文件或目录建立连接 为此Java提供了File类 File类也位于java io包中 但不是流类 而是专门用来管理磁盘文件和目录 一个File类对象表示一个磁盘文件或目录 其对象属性中包含了文件或目录的相关信息 如名称 长度 所含文件个数等 其方法可以完成对文件或目录的常用管理操作 如创建 删除等 1建立File对象 File类提供了3个不同的构造方法 File Stringpath String类参数path指定所建对象对应的磁盘文件名或目录名及其路径名 File Stringpath Stringname 此构造方法中的参数path表示文件或目录的路径 参数name表示文件或目录名 File Filedir Stringname 此构造方法中的参数dir表示一个磁盘目录对应的File对象 参数name表示文件名或目录名 File类可以代表文件或目录 如 Filex newFile c windows Filey newFile c windows 另外 考虑到不同操作系统中表示目录的方法不一样 程序中常通过读取系统属性创建File对象 如 Stringprefix System getProperty user dir System getProperty file separator Filex newFile prefix xx txt 2File对象的属性和操作 publicStringgetName 得到文件名publicStringgetPath 得到文件路径publicbooleanexists 判断文件或目录是否存在publiclonglength 返回文件的字节数publicbooleancanRead 返回当前文件是否可读publicbooleancanWrite 返回当前文件是否可写publicbooleanequals Filefile 比较文件或目录publicbooleanisFile 检测是否是文件publicbooleanisDirectiry 检测是否是目录publicbooleanrenameTo Filefile 重命名文件publicvoiddelete 删除文件 补充例1importjava io classFileTest staticinti 0 publicstaticvoidmain Stringargs Filex newFile c windows Filey newFile c xu y mkdir System out println x lastModified File类 补充例2importjava io classFileTest staticinti 0 publicstaticvoidmain Stringargs Filex newFile c windows Stringy x list for inti 0 i y length i System out println y i File类 补充例3importjava io classFileTest staticinti 0 publicstaticvoidmain Stringargs show args 0 publicstaticvoidshow Strings i 3 用于显示排版Stringblank newString newchar i Filex newFile s System out println newString newchar i 3 s String content x list for inti 0 i content length i Stringxx s content i Filey newFile xx if y isDirectory show xx elseSystem out println blank content i i 3 FileOutputStream流类 FileOutputStream流类的构造方法有两个 FileOutputStream StringfileName 参数fileName表示带路径的磁盘文件名 FileOutputStream Filefile 参数file表示为磁盘文件所建立的File对象名 Java实例 以字节流方式写入文件 importjava io publicclassFile2 publicstaticvoidmain String args throwsIOException charch Filefile1 newFile c jdk1 3 example newFile txt try FileOutputStreamfout newFileOutputStream file1 System out println 输入任一字符串 以 结束 ch char System in read while ch fout write ch ch char System in read fout close catch FileNotFoundExceptione System out println e catch IOExceptione System out println e FileInputStream流类 FileInputStream类的构造方法有两个 FileInputStream StringfileName 参数fileName表示带路径的磁盘文件名 FileInputStream Filefile 参数file表示为磁盘文件所建立的File对象名 Java实例 以字节流方式读磁盘文件 importjava io publicclassFile3 publicstaticvoidmain String args throwsIOException intch Filefile1 newFile c jdk1 3 example newFile txt try FileInputStreamfin newFileInputStream file1 System out println 文件中的信息为 ch fin read while ch 1 System out print char ch ch fin read fin close catch FileNotFoundExceptione System out println e catch IOExceptione System out println e DataOutputStream流类 使用DataOutputStream类向文件中写入各种类型数据的操作步骤是 为磁盘文件建立File类对象 为该File对象建立FileOutputStream类流对象 建立其与磁盘文件的连接 为该FileOutputStream类对象建立DataOutputStream类对象 利用DataOutputStream类的writeInt writeFloat writeDouble writeBoolean 等方法分别向文件中写入整型 单精度型 双精度型 布尔型等数据 写入操作完成后 利用close 方法将流关闭 断开与磁盘文件的联系 Java实例 向磁盘文件写入各类数据 importjava io publicclassFile4 publicstaticvoidmain String args intch InputStreamReaderiin newInputStreamReader System in BufferedReaderbin newBufferedReader iin Filefile1 newFile c jdk1 3 example dataFile txt try FileOutputStreamfout newFileOutputStream file1 DataOutputStreamdout newDataOutputStream fout System out println 输入整数 inti Integer parseInt bin readLine System out println 输入浮点数 Java实例 续 floatf Float parseFloat bin readLine System out println 输入布尔量 booleanb newBoolean bin readLine booleanValue dout writeInt i dout writeFloat f dout writeBoolean b dout close catch FileNotFoundExceptione System out println e catch IOExceptione System out println e 例 从磁盘文件读取各类数据 importjava io publicclassFile5 publicstaticvoidmain String args throwsIOException intch Filefile1 newFile c jdk1 3 example dataFile txt Filefile2 newFile c jdk1 3 example outFile txt try FileInputStreamfin newFileInputStream file1 DataInputStreamdin newDataInputStream fin inti din readInt floatf din readFloat booleanb din readBoolean din close FileOutputStreamfout newFileOutputStream file2 DataOutputStreamdout newDataOutputStream fout dout writeInt i dout writeFloat f dout writeBoolean b dout close System out println 整数 i System out println 浮点数 f System out println 布尔量 b catch FileNotFoundExceptione System out println e catch IOExceptione System out println e Writer和Reader 以字符流方式向文件写入或从文件中读取数据 可以使用Writer和Reader类及其子类 Writer和Reader类都是抽象类 不能建立它们的对象 所以只能通过它们子类对象对文件进行操作 常用的Writer类的子类包括FileWriter类和BufferedFileWriter类 FileWriter类构造方法如下 FileWriter StringfileName 参数fileName表示带路径的磁盘文件名 FileWriter Filefile 参数file表示为磁盘文件所建立的File对象名 注 使用FileWriter进行文件操作时 为了减少磁盘读写次数 常常使用具有缓冲功能的BufferedWriter类 Java实例 以字符流方式写入文件 importjava io publicclassFile8 publicstaticvoidmain Stringargs throwsException InputStreamReaderiin newInputStreamReader System in BufferedReaderbr newBufferedReader iin FileWriterfw1 newFileWriter c jdk1 3 example d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论