Java 2简明教程(第2版) 教学课件 ppt 作者 Java2-8

上传人:E**** 文档编号:89346069 上传时间:2019-05-23 格式:PPT 页数:51 大小:97.50KB
返回 下载 相关 举报
Java 2简明教程(第2版) 教学课件 ppt 作者 Java2-8_第1页
第1页 / 共51页
Java 2简明教程(第2版) 教学课件 ppt 作者 Java2-8_第2页
第2页 / 共51页
Java 2简明教程(第2版) 教学课件 ppt 作者 Java2-8_第3页
第3页 / 共51页
Java 2简明教程(第2版) 教学课件 ppt 作者 Java2-8_第4页
第4页 / 共51页
Java 2简明教程(第2版) 教学课件 ppt 作者 Java2-8_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《Java 2简明教程(第2版) 教学课件 ppt 作者 Java2-8》由会员分享,可在线阅读,更多相关《Java 2简明教程(第2版) 教学课件 ppt 作者 Java2-8(51页珍藏版)》请在金锄头文库上搜索。

1、1,第8章 输入与输出处理,本章讲述的主要内容 流的层次结构; 输入/输出流、数据输入/输出流、文件输入/输出流及它们的常用方法; 随机访问流; 对象流以及对象序列化; 输入/输出中的异常处理。,2,8.1 流的层次结构,Java将读取数据的对象称为输入流; 能向其写入数据的对象称为输出流。 使用输入/出流必须在程序的开头加上语句 import java.io.*。 InputStream和OutputStream类结构如图8-1(a) 和8-1(b)。,5,8.2 File类,File类与InputStream / OutputStream类同属于一个包,它不允许访问文件内容。 File类主

2、要用于命名文件、查询文件属性和处理文件目录。例如程序8-1。,import java.io.*; / 程序8-1 public class showAttribute void showAttributes(String fileName) File f=new File(fileName); if( f.exists( ) ) System.out.println(“Attributes of “+fileName); System.out.println(“Exist: “+f.exists(); System.out.println(“Can read: “+f.canRead(); S

3、ystem.out.println(“Can write: “+f.canWrite(); System.out.println(“Is file: “+f.isFile(); System.out.println(“Is director: “+f.isDirectory(); System.out.println(“Is absolute path: “+f.isAbsolute(); else System.out.println(fileName+“ does not exist!“); ,public static void main(String args ) if(args.le

4、ngth!=1) System.out.println(“Usage: java fileTest “); System.exit(1); showAttribute obj=new showAttribute ( ); obj.showAttributes(args0); ,采用该程序测试其自身,运行结果如下: Attributes of showAttribute.java Exist: true Can read: true Can write: true Is file: true Is director: false Is absolute path: false,9,8.3 Inp

5、utStream类和OutputStream类,它们都是抽象类,不能创建对象; 必须通过其子类实现实例化。,10,8.3.1 InputStream类的常用方法,1. public abstract int read( ):读取一个byte的数据,返回值是高位补0的int类型值。 2.public int read(byte b ):读取b.length个字节的数据放到b数组中。返回值是读取的字节数。该方法实际上是调用下一个方法实现的。 3. public int read(byte b , int off, int len):从输入流中最多读取len个字节的数据,存放到偏移量为off的b数组

6、中。,11,8.3.1 InputStream类的常用方法(续),4. public int available( ):返回输入流中可以读取的字节数。注意:若输入阻塞,当前线程将被挂起。 5. public long skip(long n):忽略输入流中的n个字节,返回值是实际忽略的字节数。 6. public int close( ) :关闭输入流。,12,8.3.2 OutputStream类的常用方法,1. public void write(byte b ):将参数b中的字节写到输出流。 2. public void write(byte b , int off, int len)

7、:将参数b的从偏移量off开始的len个字节写到输出流。 3. public abstract void write(int b) :先将int转换为byte类型,把低字节写入到输出流中。,13,8.3.2 OutputStream类的常用方法(续),4. public void flush( ) : 将数据缓冲区中数据全部输出,并清空缓冲区。 5. public void close( ) : 关闭输出流并释放与流相关的系统资源。注意以下两点:,1. 上述各方法都有可能引起异常。 2. InputStream和OutputStream都是抽象类,不能创建这种类型的对象。,14,8.3.3 F

8、ileInputStream类,FileInputStream类是InputStream类的子类,用来处理以文件作为数据输入源的数据流。使用方法:,方式1: File fin=new File(“d:/abc.txt“); FileInputStream in=new FileInputStream(fin); 方式2: FileInputStream in=new FileInputStream(“d: /abc.txt“);,/ 程序8-2 import java.io.*; class showFile void showInfo( ) throws Exception int size

9、=0; / 下列一行语句可能会产生异常 FileInputStream fin=new FileInputStream(“d:/abc.txt“);,try size=fin.available( ); System.out.println(“file size = “+size); System.out.println(“Read the first 1/4“); byte b =new bytesize/4; fin.read(b); String str=new String(b); System.out.println(“The first 1/4 is: “+str); System

10、.out.println(“nSkip the next 1/2 :“); fin.skip(size/2); System.out.println(“available :“+fin.available( );,catch(FileNotFoundException e) System.out.println(“File not found : “+e); throw e; finally fin.close( ); ,public class fileReadTest public static void main(String args ) showFile obj=new showFi

11、le( ); try obj.showInfo( ); catch(Exception e) System.out.println(“File not found : “+e); e.printStackTrace( ); ,19,8.3.4 FileOutputStream类,FileOutputStream类用来处理以文件作为数据输出目的数据流; 创建一个文件流对象有两种方法:,方式1: File f=new File(“d:/abc.txt“); FileOutputStream out=new FileOutputStream (f); 方式2: FileOutputStream ou

12、t=new FileOutputStream(“d:/abc.txt“);,/ 程序8-3 import java.io.*; class fileWriteInfo void writeInfo( )throws IOException int size=0; byte b =new byte6; FileOutputStream fout=new FileOutputStream(“d:/abc.txt“);,try System.out.print(“Enter 6 chars: “); for(int i=0;i6;i+) bi=(byte)System.in.read( ); fou

13、t.write(b); catch(IOException e) System.out.print(“file IOException!“); finally fout.close( ); ,public class fileWriteTest public static void main(String args ) fileWriteInfo obj=new fileWriteInfo ( ); try obj.writeInfo( ); catch(IOException e) System.out.println(“File not found : “+e); e.printStack

14、Trace( ); ,23,写文件时注意,在向文件中写数据时,若文件已经存在,则覆盖存在的文件; 当流的读/写操作结束时,应调用close方法关闭流。,24,8.3.5 DataInputStream和DataOutputStream类,DataInputStream类对象可以读取各种类型的数据,而DataOutputStream类对象可以写各种类型的数据; 创建这两类对象时,必须使新建立的对象指向构造函数中的参数对象。例如:,FileInputStream in=new FileInputStream(“d:/abc.txt“); DataInputStream din=new DataIn

15、putStream(in);,25,DataInputStream类的常用方法,1.public final int skipBytes(long n): 跳过输入流中n个字节的数据。 2.public final byte readByte( ):从输入流中读取1个字节的数据。 3.public final char readChar( ):从输入流中读取1字符的数据。 4.public final int readInt( ):从输入流中读取4字节的数据。,26,DataInputStream类的常用方法(续),5.public final long readLong( ):从输入流中读取

16、8字节的数据。 6.public final String readLine( ):从数据输入流中读取一行,并且包括换行符。 7.public final void readFully(byte b ):从数据输入流中读取b.length 个字节的数据,读到b数组中。,27,DataOutputStream类 的常用方法,1. public final int size( ):返回写到输出流中的字节数。 2. public final void writeBytes(String s):将字符串s中的字符写到输出流中,写时忽略高8位。 3. public final void writeChars(String s):将字符串s中的字符写到输出流中。 4. public final void writeInt(int v):

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号