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

Java语言程序设计:第6章 输入、输出流和文件

119页
  • 卖家[上传人]:经***
  • 文档编号:295541002
  • 上传时间:2022-05-20
  • 文档格式:PPT
  • 文档大小:1.25MB
  • / 119 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第六章第六章 输入输入/输出流和文件输出流和文件JAVA语言程序设计目录目录l6.1 输入输入/输出流输出流l6.2 文件读写文件读写l6.3 本章小结本章小结26.1.1 I/O流的概念流的概念 lI/O流流(Input/Output)在Java中将信息的输入与输出过程抽象为I/O流l输入是指数据流入程序l输出是指数据从程序流出一个流就是一个从源流向目的地的数据序列IO流类一旦被创建就会自动打开通过调用close方法,可以显式关闭任何一个流,如果流对象不再被引用,Java的垃圾回收机制也会隐式地关闭它输入/输出流4l输入流输入流为了从信息源获取信息,程序打开一个输入流,程序可从输入流读取信息l输出流输出流当程序需要向目标位置写信息时,便需要打开一个输出流,程序通过输出流向这个目标位置写信息6.1.1 I/O流的概念流的概念(续续) 输入/输出流5对象对象源源?目标目标?或两者或两者?diskfilerunningprogrammonitorkeyboardInternetconnectionimagescannermouseBothBothDestinationSourceBothS

      2、ourceSource输入/输出流6.1.1 I/O流的概念流的概念(续续)源和目标的类型源和目标的类型6l不论数据从哪来,到哪去,也不论数据本不论数据从哪来,到哪去,也不论数据本身是何类型,读写数据的方法大体上都是身是何类型,读写数据的方法大体上都是一样的:一样的:6.1.1 I/O流的概念流的概念(续续)读写数据的方法读写数据的方法读写打开一个流读信息关闭流打开一个流写信息关闭流输入/输出流76.1.2 预定义的预定义的I/O流类概述流类概述l输入输入/输出流可以从以下几个方面进行分类输出流可以从以下几个方面进行分类从流的方向划分l输入流l输出流从流的分工划分l节点流l处理流从流的内容划分l面向字符的流l面向字节的流输入/输出流8l面向字符的流:专门用于字符数据面向字符的流:专门用于字符数据l面向字节的流:用于一般目的面向字节的流:用于一般目的6.1.2 预定义的预定义的I/O流类概述流类概述(续续)java.io包的顶级层次结构包的顶级层次结构输入/输出流9输入/输出流6.1.2 预定义的预定义的I/O流类概述流类概述(续续) 面向字符的流面向字符的流l面向字符的流面向字符的流针

      3、对字符数据的特点进行过优化,提供一些面向字符的有用特性源或目标通常是文本文件10l实现内部格式和文本文件中的外部格式实现内部格式和文本文件中的外部格式之间转换之间转换内部格式:16-bit char 数据类型 外部格式:lUTF(Universal character set Transformation Format):很多人称之为Universal Text Formatl包括ASCII 码及非ASCII 码字符,比如: 斯拉夫(Cyrillic)字符, 希腊字符,亚洲字符等6.1.2 预定义的预定义的I/O流类概述流类概述(续续) 面向字符的流面向字符的流输入/输出流11l面向字符的抽象类面向字符的抽象类Reader和和Writerjava.io包中所有字符流的抽象基类Reader提供了输入字符的APIWriter提供了输出字符的API它们的子类又可分为两大类l节点流:从数据源读入数据或往目的地写出数据l处理流:对数据执行某种处理多数程序使用这两个抽象类的一系列子类来读入/写出文本信息l例如FileReader/FileWriter用来读/写文本文件6.1.2 预定义的预定义的I

      4、/O流类概述流类概述(续续) 面向字符的流面向字符的流输入/输出流126.1.2 预定义的预定义的I/O流类概述流类概述(续续) 面向字符的流面向字符的流输入/输出流阴影部分为节点流13l数据源或目标中含有非字符数据,必数据源或目标中含有非字符数据,必须用字节流来输入须用字节流来输入/输出输出l通常被用来读写诸如图片、声音之类通常被用来读写诸如图片、声音之类的二进制数据的二进制数据l绝大多数数据是被存储为二进制文件绝大多数数据是被存储为二进制文件的,世界上的文本文件大约只能占到的,世界上的文本文件大约只能占到2,通常二进制文件要比含有相同,通常二进制文件要比含有相同数据量的文本文件小得多数据量的文本文件小得多6.1.2 预定义的预定义的I/O流类概述流类概述(续续) 面向字节的流面向字节的流输入/输出流14lInputStream和和OutputStream是用来处理8位字节流的抽象基类,程序使用这两个类的子类来读写8位的字节信息分为两部分l节点流l处理流6.1.2 预定义的预定义的I/O流类概述流类概述(续续) 面向字节的流面向字节的流输入/输出流156.1.2 预定义的预定义的I/

      5、O流类概述流类概述(续续) 面向字节的流面向字节的流输入/输出流阴影部分为节点流16l标准输入输出流对象标准输入输出流对象System类的静态成员变量包括lSystem.in: InputStream类型的,代表标准输入流,这个流是已经打开了的,默认状态对应于键盘输入。lSystem.out:PrintStream类型的,代表标准输出流,默认状态对应于屏幕输出lSystem.err:PrintStream类型的,代表标准错误信息输出流,默认状态对应于屏幕输出6.1.2 预定义的预定义的I/O流类概述流类概述(续续) 标准输入输出标准输入输出输入/输出流176.1.2 预定义的预定义的I/O流类概述流类概述(续续) 标准输入输出标准输入输出l标准标准I/O重新导向重新导向setIn(InputStream): 设置标准输入流setOut(PrintStream):设置标准输出流setErr(PrintStream):设置标准错误输出流输入/输出流18l从键盘读入信息并在显示器上显示从键盘读入信息并在显示器上显示import java.io.*;public class Echo publ

      6、ic static void main(String args) throws IOException BufferedReader in = new BufferedReader( new InputStreamReader(System.in); String s; while(s = in.readLine().length() != 0) System.out.println(s); 6.1.2 预定义的预定义的I/O流类概述流类概述(续续) 例例6_1输入/输出流运行结果运行结果Hello!Hello!19lSystem.in程序启动时由Java系统自动创建的流对象,它是原始的字节流,不能直接从中读取字符,需要对其进行进一步的处理lInputStreamReader(System.in)以System.in为参数创建一个InputStreamReader流对象,相当于字节流和字符流之间的一座桥梁,读取字节并将其转换为字符lBufferedReader in对InputStreamReader处理后的信息进行缓冲,以提高效率6.1.2 预定义的预定义的I/O流类概述流类概述(续

      7、续) 例例6_1说明说明输入/输出流20Java SE 5.0新特性新特性l Java 5.0终于也有了自己的终于也有了自己的printf!out.printf(“%-12s is %2d long”, name, l);out.printf(“value = %2.2F”, value);%n 是平台无关的换行标志l一个方便的扫描一个方便的扫描API: 把文本转化成基本类把文本转化成基本类型或者型或者StringScanner s = new Scanner(System.in);int n = s.nextInt();还有下列方法:next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShort()21l重导向标准输入重导向标准输入System.in和标准输出和标准输出System.outimport java.io.*;public class Redirecting public static void main(String args) throws IOException Buffere

      8、dInputStream in = new BufferedInputStream( new FileInputStream( Redirecting.java); PrintStream out = new PrintStream( new BufferedOutputStream( new FileOutputStream(test.out); System.setIn(in); System.setOut(out); System.setErr(out); BufferedReader br = new BufferedReader( new InputStreamReader(System.in); String s; while(s = br.readLine() != null) System.out.println(s); out.close(); / Remember this! 6.1.2 预定义的预定义的I/O流类概述流类概述(续续) Redirecting.java输入/输出流22l处理流处理流不直接与数据源或目标相连,而是基于另一个流来构造从流读写数据的同时对数

      9、据进行处理例6-1中的InputStreamReader和BufferedReader都属于处理流lInputStreamReader读取字节并转换为字符lBufferedReader对另一个流产生的数据进行缓冲6.1.2 预定义的预定义的I/O流类概述流类概述(续续) 处理流处理流输入/输出流23用一行表达式实现:用一行表达式实现:BufferedReaderBufferedReader stdinstdin = new = new BufferedReaderBufferedReader ( new ( new InputStreamReaderInputStreamReader( (System.inSystem.in) );) ); 6.1.2 预定义的预定义的I/O流类概述流类概述(续续) 处理流处理流输入/输出流24l IO异常异常多数IO方法在遇到错误时会抛出异常,因此调用这些方法时必须l在方法头声明抛出IOException异常l或者在try块中执行IO,然后捕获IOException6.1.2 预定义的预定义的I/O流类概述流类概述(续续) I/O异常异常输入/输出流

      10、256.2 文件读写文件读写l写文本文件写文本文件l读文本文件读文本文件l写二进制文件写二进制文件l读二进制文件读二进制文件lFile类类l处理压缩文件处理压缩文件l对象序列化对象序列化l随机文件读写随机文件读写266.2.1 写文本文件写文本文件 l本节知识点本节知识点FileWriter类 创建一个磁盘文件 关闭一个磁盘文件 write() 方法捕获I/O异常 BufferedWriter 类文件读写27l在在C盘根目录创建文本文件盘根目录创建文本文件Hello.txt,并往里写入若并往里写入若干行文本干行文本import java.io.*; class Ex6_2 public static void main ( String args ) throws IOException /main方法中声明抛出IO异常 String fileName = C:Hello.txt; FileWriter writer = new FileWriter( fileName ); writer.write( Hello!n); writer.write( This is my first

      《Java语言程序设计:第6章 输入、输出流和文件》由会员经***分享,可在线阅读,更多相关《Java语言程序设计:第6章 输入、输出流和文件》请在金锄头文库上搜索。

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