java速成课件输入输出流.ppt_第1页
java速成课件输入输出流.ppt_第2页
java速成课件输入输出流.ppt_第3页
java速成课件输入输出流.ppt_第4页
java速成课件输入输出流.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

第十一章 输入与输出输入与输出 Reader BufferedReader 具有缓冲功能字符输入流 InputStreamReader 字节输入流和字符输入流的桥梁 FileReader 从文件读入字符流 Writer PrintWriter BufferedWriter OutputStreamWriter FileWriter OutputStream抽象类 FileOutputStream 文件操作写一个字节 FilterOutputStream 抽象类 PrintStream 格式化输出 DataOutputStream 特定格式输出 BufferedOutputStream 具缓冲功能 InputStream 抽象类 FileInputStream对文件操作 FilterInputStream抽象类(定义方法给子类继承) DataInputStream 特定数据格式 BufferedInputStream 具缓冲功能 记住他们 一、输入输出类库 Java的输入输出功能必须借助于 输入输出类库Java.io包来实现,这 个包中的类大部分是用来完成流式 输入输出的流类。 流 流是指在计算机的输入与输出之间的数据的序 列,流的特点是数据的发送和获取都是延数据序列 顺序进行的,每个数据必须等待他前面的数据发送 或读入后才能被读写。 就流的运动方向而言,流可分为输入流( input stream)和输出流(output stream), 输入流代表从外设流入计算机的数据序列; 输出流代表从计算机流向外设的数据序列。 流的分类 Java中的数据流有位流(字节流)和字 符流之分; 字节流 InputStream OutputStream ByteCharacter Reader Writer字符流 输入输出流类 在Java的流类中,最基本的类有两个: 输入流类InputStream和输出流类 OutputStream。 这两个是具有最基本的输入输出功能的抽 象类,其他流类都是为了方便处理各种 特定流而设置的,属于InputStream或 OutputStream的子类。 InputStream类 aint read( )从输入流读入数据,没有数据返回1 aint read(byte b)从输入流当前位置连续读入多个字节, 保存到byte数组b中,返回读入的字节 数目 along skip(long n)跳过流中若干字节数 avoid mark( ) 在流中标记一个位置 avoid close( ) 关闭流 avoid reset( ) InputStream类的主要方法 InputStream子类的继承关系 InputStream 抽象类 FileInputStream对文件操作 FilterInputStream抽象类(定义方法给子类继承) DataInputStream特定数据格式 每次可以读一个 英文字符 例如double或 float类型的一 个数 用File或String对象产生 用FileInputStream对象产生 FileInputStream类流 FileInputStream流类的构造方法有两个: FileInputStream(String fileName): 参数fileName表示带路径的磁盘文件名。 FileInputStream(File file): 参数file表示为磁盘文件所建立的File对象 名 。 File String FileInputStream OutputStream类的主要方法 Jvoid write( )向输出流写数据 Jvoid write(byte b)将byte型数组b全部字节顺序写到输出流 Jvoid flush( )强制清空缓冲区 Jvoid close( )关闭输出流 OutputStream子类的继承关系 OutputStream抽象类 FileOutputStream 文件操作可以写一个字节 FilterOutputStream 抽象类 PrintStream 格式化输出 DataOutputStream 特定格式输出 FileOutputStream fout= new FileOutputStream(file1); fout.write(ch); 用File或String对象产生 用FileOutputStream对象产生 FileOutputStream类流 FileOutputStream流类的构造方法有两个: FileOutputStream(String fileName): 参数fileName表示带路径的磁盘文件名。 FileOutputStream(File file): 参数file表示为磁盘文件所建立的File对象 名 File String FileOutputStream n【任务9-1】利用字节流实现文件合并 源文件a.txtFileInputStream对象fin1 源文件b.txtFileInputStream对象fin2 FileOutputStream对象fout源文件c.txt 程序 源代码在备注中 package ch9.eg9_1; import java.io.*;/使用字节流合并文件 public class merge public static void main(String args) FileInputStream fin1,fin2; FileOutputStream fout; try fin1 = new FileInputStream(“exampleeg9_1a.txt“); fin2 = new FileInputStream(“exampleeg9_1b.txt“); fout = new FileOutputStream(“exampleeg9_1c.txt“); int c = fin1.read(); while (c != -1) fout.write(c); System.out.print(char) c);/ 注意要转换类型 c = fin1.read(); fin1.close(); 【任务9-1】 c = fin2.read(); while (c != -1) fout.write(c); System.out.print(char) c);/ 注意要转换类型 c = fin2.read(); fin2.close(); fout.close(); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); 【任务9-1】 n编写一个程序,分别统计并输出某文本文件中 元音字母a,e,i,o,u的个数 n提示: n建立一个FileInputStream对象指向某一个 文本文件,用该对象来逐个读字符进行统计 n捕获FileNotFoundException、 IOException两个异常 上机练习1 备注:文本文件自己准备 流的附加 nJava中流的强大功能之一是可以将一个 流附加到另一个流上。 n例如,基本输入流读取字节提供了read() 方法,如果程序中要读取int数据(4个字 节),可以将能输入int数据的流附加到某 个流上。 byte byte byte byte byte byte byte byte 转换 int (4字节) int (4字节) int (4字节) int (4字节) char 2字节 char 2字节 char 2字节 char 2字节 DataOutputStream类流 步骤: 建立FileOutputStream类对象指向某文件 FileOutputStream fout=new FileOutputStream(“d:zhoujiangdataFile.txt“); 建立DataOutputStream类对象, DataOutputStream dout=new DataOutputStream(fout); 利用DataOutputStream类的writeInt(),方法写入各 种类型数据; dout.writeInt(i);/i可以为各种数据类型 操作完成后,将流关闭,断开与磁盘文件的联系。 dout.close() ; 查API:FileOutputStream的构造方法 【任务9-2】将特定格式数据写入文件 源代码在备注中 FileOutputStream fout ; fout = new FileOutputStream(“exampleeg9_2.txt“); DataOutputStream dout = new DataOutputStream(fout); dout.writeUTF(“Tom“, ); dout.writeInt(80901); dout.writeDouble(67.5); package ch9.eg9_2; import java.io.*; /将特定数据写入文件,并读出来比较最大值。 public class DataToFile static void Input() FileOutputStream fout; try / 将四个同学的信息写入文件 fout = new FileOutputStream(“exampleeg9_2.txt“); DataOutputStream dout = new DataOutputStream(fout); String names = “Tom“, “Jack“, “Rose“, “Susan“ ; int Nos = 80901, 20012, 30056, 90008 ; double scores = 67.5, 78.0, 88.5, 90.5 ; for (int i = 0; i score) score = tmp; System.out.println(“成绩最高分:“ + score); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); public static void main(String args) Input(); FindMax(); 【任务9-2】 所需知识: DataOutputStream的来源 OutputStream抽象类 FileOutputStream 文件操作可以写一个字节 FilterOutputStream抽象类 PrintStream 格式化输出 DataOutputStream特定格式输出 常用技巧;eg106 FileOutputStream fout=new FileOutputStream(“d:zhoujiangdataFile.txt“);); DataOutputStream dout=new DataOutputStream(fout); dout.write(i);/i可以为各种数据类型 产生顺序 6 编写程序实现以下功能(用 DataOutputSteam类 参考例子106) 1)产生5000个19999的随机数,并存到 a.txt中 2)从文件中读这5000个数,并计算最大 值,最小值,和平均值 习题讲解:特定数据格式 上机练习2 9.4习题 一、选择题: 1.下列数据流中,属于输入流的一项是()。 A从内存流向硬盘的数据流B 从键盘流向

温馨提示

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

评论

0/150

提交评论