书签 分享 收藏 举报 版权申诉 / 72
上传文档赚钱

类型javaio中的基本流类-MINGJNU课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5203628
  • 上传时间:2023-02-17
  • 格式:PPT
  • 页数:72
  • 大小:1.28MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《javaio中的基本流类-MINGJNU课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    javaio 中的 基本 MINGJNU 课件
    资源描述:

    1、第九章 Java输入输出系统本章目录流的基本概念流的基本概念 1 1字节流字节流 2 2字符流字符流 3 3FileFile类类 4 4System.inSystem.in和和System.outSystem.out对象对象 5 5FileInputStreamFileInputStream类和类和FileOutputStreamFileOutputStream类类6 6FileReaderFileReader类和类和FileWriterFileWriter类类 7 7过滤流过滤流 8 8文件的随机访问文件的随机访问 9 9案例分析案例分析:多种流多种流的实现的实现1010教学目标掌握流的基本

    2、概念掌握Java中各种常用输入/输出流的基本用法能够熟练地编写应用程序解决文件的读写问题。教学重点字节流与字符流的区别File类的使用过滤流的合理使用文件的随机访问操作9.1 流的基本概念 java.io包:支持流的输入输出支持流的输入输出 十分巨大,定义了大约十分巨大,定义了大约60个类,包含大量方法个类,包含大量方法 要了解更多的信息参看要了解更多的信息参看API文档文档 在Java1.3及其以后的版本中,读写文件的唯一手段就是使用流。9.1 流的基本概念 流(stream):是输入和输出设备的一种抽象表示,这些设备是是输入和输出设备的一种抽象表示,这些设备是数据源或数据终点。数据源或数据

    3、终点。可以向流中写入数据,也可以从流中读出数据。可以向流中写入数据,也可以从流中读出数据。大家可以把流想象为流入自己程序或从自己程序大家可以把流想象为流入自己程序或从自己程序中流出的字节序列。中流出的字节序列。9.1 流的基本概念 为什么引入流作为的基本输入输出操作?让实现这些操作的程序编码独立于所涉及的设备。让实现这些操作的程序编码独立于所涉及的设备。这样做的好处有两点:这样做的好处有两点:1.不必担心各种设备的具体工作机制,对于它们的不必担心各种设备的具体工作机制,对于它们的管理均在幕后进行。管理均在幕后进行。2.用户的程序可以适用于各种输入输出设备,改变用户的程序可以适用于各种输入输出设

    4、备,改变输入输出设备时不用改写程序编码。输入输出设备时不用改写程序编码。9.1 流的基本概念流式输入输出的特点每个数据都必须等待排在它前面的数据读入或每个数据都必须等待排在它前面的数据读入或送出之后才能被读写;送出之后才能被读写;每次读写操作处理的都是序列中剩余的未读写每次读写操作处理的都是序列中剩余的未读写数据中的第一个,而不能随意选择输入输出的数据中的第一个,而不能随意选择输入输出的位置。位置。9.1 流的基本概念9.1 流的基本概念 Java中有两种基本的流 (1)输入流:)输入流:打开流打开流 当流中还有数据时执当流中还有数据时执行读操作行读操作 关闭流。关闭流。(2)输出流:)输出流

    5、:打开流打开流 当有数据需要输出时当有数据需要输出时执行写操作执行写操作 关闭流。关闭流。9.1 流的基本概念 输出流:从计算机流向外设的数据序列,即把数据写入流时,该流称为输出流。输出流可以通往任何可以传输字节序列的设备,输出流可以通往任何可以传输字节序列的设备,例如硬盘上的文件,或连接用户系统至远程系统例如硬盘上的文件,或连接用户系统至远程系统的电话线路。输出流也可以通向显示器,但这会的电话线路。输出流也可以通向显示器,但这会大大限制其真正的功能。大大限制其真正的功能。输入流:从外设流入计算机的数据序列;9.1 流的基本概念程序程序输入流输入流输出流输出流数据数据数据数据显示器显示器键盘键

    6、盘9.1 流的基本概念 1.输入流(Inputstream)通过打开一个到数据源(文件、内存或网络端口上的数据)的输入流,程序可以从数据源上顺序读取数据。读数据的逻辑为:读数据的逻辑为:open a streamopen a streamwhile more informationwhile more informationread informationread informationclose the streamclose the stream9.1 流的基本概念 2.输出流(Outputstream)通过打开一个到目标的输出流,程序可以向外部目标顺序写数据9.1 流的基本概念 2.输出

    7、流(Outputstream)文件,当向其中写数据时,它就是一个文件,当向其中写数据时,它就是一个输出流输出流;当从其中读取数据时,它就是一个当从其中读取数据时,它就是一个输入流输入流。键盘只是一个键盘只是一个输入流输入流,屏幕只是一个屏幕只是一个输出流输出流。写数据的逻辑为:写数据的逻辑为:open a streamopen a streamwhile more informationwhile more informationwrite informationwrite informationclose the streamclose the stream9.1 流的基本概念 另外,根据流

    8、中数据单位的不同,可将流分为字节流和字符流。(1)字节流:)字节流:流中数据以流中数据以8位字节为单元进行位字节为单元进行读写。读写。(2)字符流:)字符流:流中数据以流中数据以16位字符为单位进位字符为单位进行读写。行读写。9.1 流的基本概念 java.io包支持两种类型的流:字符流类(字符流类(Character Streams)字符流类用字符流类用于向字符流读写于向字符流读写1616位二进制字符。位二进制字符。字节流类(字节流类(Byte Streams)字节流类用于向字节流类用于向字节流读写字节流读写8 8位二进制的字节。一般地,字节流位二进制的字节。一般地,字节流类主要用于读写诸如

    9、图象或声音等的二进制数据。类主要用于读写诸如图象或声音等的二进制数据。9.1 流的基本概念java.iojava.io中的基本流类:中的基本流类:说明:它们是抽象类,不能直接创建对象。说明:它们是抽象类,不能直接创建对象。9.2 字节流 InputStream类和OutputStream类是字节流的两个顶层父类。它们提供了输入流类与输出流类的通用API。字节流一般用于读写二进制数据,例如图像和声音数据。有两个字节流ObjectInputStream和ObjectOutputStream是用来实现对象的串行化,即对象的输入输出。9.2 字节流 1.InputStream类9.2 字节流read(

    10、):从流中读入数据:从流中读入数据skip():跳过流中若干字节数:跳过流中若干字节数available():返回流中可用字节数:返回流中可用字节数mark():在流中标记一个位置:在流中标记一个位置reset():返回标记过的位置:返回标记过的位置 markSupport():是否支持标记和复位操作:是否支持标记和复位操作 close():关闭流:关闭流9.2 字节流用于过滤现有流的输入用于过滤现有流的输入9.2 字节流 FilterInputStream类有9个直接子类,它们提供对输入流数据过滤或转换的更多的特殊方式。BufferedInputStream DataInputStream

    11、CheckedInputStream CipherInputStream DigestInputStream InflaterInputStream LineNumberInputStream ProgressMonitorInputStream PushbackInputStream输9.2 字节流 BufferedInputStream 把流包装到把流包装到BufferedInputStream对象中的效果对象中的效果是将基本数据流缓冲入内存,使得一次可以从是将基本数据流缓冲入内存,使得一次可以从流中读入大块数据流中读入大块数据(其最大值取决于缓冲区的大其最大值取决于缓冲区的大小小),然后

    12、让,然后让read方法可以直接从内存缓冲区中方法可以直接从内存缓冲区中读取数据,当缓冲区为空时,仅从基本数据流读取数据,当缓冲区为空时,仅从基本数据流执行一次真正的读操作。执行一次真正的读操作。BufferedInputStream keyboard=new BufferedInputStream(System.in);9.2 字节流n2.OutputSteam类 9.2 字节流nwrite(int b):将一个整数输出到流中(只输出低:将一个整数输出到流中(只输出低位字节,为抽象方法)位字节,为抽象方法)nwrite(byte b):将字节数组中的数据输出到流:将字节数组中的数据输出到流中中

    13、nwrite(byte b,int off,int len):将数组:将数组b中从中从off指指定的位置开始,长度为定的位置开始,长度为len的数据输出到流中的数据输出到流中nflush():刷空输出流,并将缓冲区中的数据强制:刷空输出流,并将缓冲区中的数据强制送出送出nclose():关闭流:关闭流9.2 字节流OutputStreamOutputStreamFileOutputStreamFileOutputStreamObjectOutputStreamObjectOutputStreamByteArrayOutputStreamByteArrayOutputStreamPipedOut

    14、putStreamPipedOutputStreamFilterOutputStreamFilterOutputStream用于向文件写用于向文件写用于将对象写入流用于将对象写入流用于向字节数组写用于向字节数组写用于向流管道写用于向流管道写用于过滤现有流的输出用于过滤现有流的输出9.3 字符流 字符流能够处理Unicode字符集中所有的字符,而字节流限于处理ISOLatin1的8位字节 字符流采用了统一的编码标准,可国际化 使用字符流来读写文本类数据。Reader类和Writer类是java.io包中两个字符流类的顶层抽象父类。9.3 字符流 Reader和Writer都是抽象类。Reader

    15、和Writer对象通常使用InputStream或OutputStream对象来创建 InputStream或OutputStream对象封装了与最终数据源或数据终点这种外设的连接。9.3 字符流 ReaderReaderInputStreamReaderInputStreamReaderBufferedReaderBufferedReaderPipedReaderPipedReaderCharArrayReaderCharArrayReaderStringReaderStringReader用于读取字符流用于读取字符流用于缓冲其他用于缓冲其他ReadersReaders类类用于读取用于读取P

    16、ipedWriterPipedWriter用于读取字符数组用于读取字符数组用于读取字符串用于读取字符串FilterReaderFilterReader用于读取过滤后的流用于读取过滤后的流9.3 字符流 用于像读取字符流一样读取二进制输入流的具体类是InputStreamReader。InputStreamReader类定义了3种read()方法,这些方法将从基本流中读取一个或多个字节,并且使用默认转换方式将它们由本地字符编码转换为Unicode码后,再将它们返回。InputStreamReader keyboard=new InputStreamReader(System.in);如果使用Bu

    17、fferedReader对象来缓冲数据流,则读取工作的效率会有所提高。CharArrayReader对象创建于数组,并且允许用户从数组读取数据,就像是从字符输入流中读取数据一样。StringReader对象类实质上做相同的事情,只是处理的是String对象。9.3 字符流 BufferedReader keyboard=new BufferedReader(new InputStreamReader(System.in);9.3 字符流 WriterWriterOutputStreamWriterOutputStreamWriterBufferedWriterBufferedWriterPip

    18、edWriterPipedWriterCharArrayWriterCharArrayWriterStringWriterStringWriter用于写字符流用于写字符流用于缓冲其他用于缓冲其他WritersWriters类类用于向用于向PipedReaderPipedReader写写用于向字符数组写用于向字符数组写用于向字符串写用于向字符串写PrintWriterPrintWriter用于写格式化数据用于写格式化数据FilterWriterFilterWriter用于写过滤后的流用于写过滤后的流 OutputStreamWriter类将字符写入基本二进制流中,它有一个子类FileWriter

    19、,FileWriter将字符写入封装文件的流。PrintWriter类与打印没有什么联系。PrintWriter类定义了用于将二进制数格式化为字符,并且把它写入数据流的方法。9.3 字符流 9.3 字符流 注意:PrintWriter对象所作的格式化无助于让输出行中的各项内容按列对齐排列。如果希望产生特定的格式输出,必须自己去编写代码。StringWriter strWriter=new StringWriter();PrintWriter writer=new PrintWriter(strWriter);double value=2.71828;writer.println(value);

    20、StringBuffer str=strWriter.getBuffer();9.4 File类 File类功能:得到文件或目录的描述信息,包括文件名称、所在目录、可读性、可写性、长度和文件的最后修改时间等可以生成新的目录改变文件名删除文件列出一个目录中所有的文件或与某个模式相匹配的文件等。9.4 File类 File类的构造方法:(1)public File(String path)参数path是包含目录和文件名的字符串,Java把目录看作一种特殊的文件,因此该字符串可以没有文件名,这时若调用方法isFile()将返回false,说明File对象是目录而不是文件。(2)public File

    21、(String path,String name)path是目录路径(父目录),name可包含目录和文件名(相对于父目录)。(3)public File(File dir,String name)dir是一个文件对象(父目录),child可包含目录和文件名(相对于父目录)。9.4 File类 File类的构造方法:(1)public File(String path)参数path是包含目录和文件名的字符串,Java把目录看作一种特殊的文件,因此该字符串可以没有文件名,这时若调用方法isFile()将返回false,说明File对象是目录而不是文件。(2)public File(String p

    22、ath,String name)path是目录路径(父目录),name可包含目录和文件名(相对于父目录)。(3)public File(File dir,String name)dir是一个文件对象(父目录),child可包含目录和文件名(相对于父目录)。例如:File f1=new File(D:/Java);File f2=new File(D:/Java,test.txt);File f3=new File(f1,test.txt);File f4=new File(file:/D:/Java/test.txt)9.4 File类9.4 File类方 法说 明public String

    23、getName()返回文件名。public String getPath()返回文件路径。public String getAbsolutePath()返回文件绝对路径。public String getParent()返回文件的父目录。public boolean exists()判断文件是否存在。public boolean canWrite()判断文件是否可写。public boolean canRead()判断文件是否可读。public boolean isFile()判断对象是否是文件。public boolean isDirectory()判断对象是否是目录。public nati

    24、ve boolean isAbsolute()如果文件名为绝对名,则返回真。9.4 File类方 法说 明public long lastModified()返回文件最后修改时间。public long length()返回文件长度。public boolean mkdir()创建目录。public boolean renameTo(File dest)重命名文件。public boolean mkdirs()创建目录及子目录。public String list()列出目录下的所有文件和目录。public String list(FilenameFilter filter)列出目录下的指定文

    25、件。public boolean delete()删除文件对象。public int hashCode()为文件创建散列代码。public boolean equals(Object obj)判断是否同对象obj相等。public String toString()返回文件对象的字符串描述。9.4 File类【例9-1】输入一个文件名,显示该文件的相关属性信息。import java.io.*;public class FileClass public static void main(String args)System.out.println(enter file name:);char

    26、c;StringBuffer buf=new StringBuffer();try while(c=(char)System.in.read()!=n)buf.append(c);/将输入的字符加到buf中,以回车符结尾 catch(java.io.IOException e)System.out.println(Error:+e.toString();File file=new File(buf.toString().trim();/创建File类的file对象 if(file.exists()/如果文件在当前目录存在 System.out.println(File Name:+file.g

    27、etName();/显示文件的文件名 System.out.println(path:+file.getPath();/显示文件的路径 System.out.println(Abs.path:+file.getAbsolutePath();/显示文件的绝对路径 System.out.println(Writeable:+file.canWrite();/显示文件是否可写 System.out.println(Readlable:+file.canRead();/显示文件是否可读 System.out.println(Length:+(file.length()+B);/显示文件的大小 else

    28、 /如果文件不在当前目录 System.out.println(Sorry,file not found.);/显示文件没有找到的提示消息9.5 System.in和System.out对象 标准输入输出指在字符方式下程序与系统进行交互的方式,分为以下3 种:(1)标准输入stdin,对象是键盘。(2)标准输出stdout,对象是屏幕。(3)标准错误输出stderr,对象也是屏幕。Java 通过系统类System 实现标准输入输出的功能,定义了3 个流变量,分别为in、out 和err。可以直接通过System 类进行调用。9.5 System.in和System.out对象 1.标准输入 r

    29、ead()方法:这个方法在这个方法在InputStream类中是抽象的,因此它必须定类中是抽象的,因此它必须定义在子类中。义在子类中。此方法以此方法以int型返回流的下一个可读字节。型返回流的下一个可读字节。如果到达流的末尾,则方法的返回值为如果到达流的末尾,则方法的返回值为-1。如果如果I/O发生错误,将抛出发生错误,将抛出IOException类型的异常。类型的异常。9.5 System.in和System.out对象 2.标准输出 Java 的标准输出System.out 是打印输出流PrintStream 类的对象。PrintStrearn类定义了在屏幕上显示不同类型数据的方法prin

    30、t()和println()。(1)println()方法 println()方法可输出多种不同类型的变量或对象,包括boolean、double、float、int、long、char、字符数组以及Object 类型的对象。(2)print()方法 print()方法输出后不换行9.5 System.in和System.out对象【例9-2】输入一个字符,在屏幕上显示该字符。import java.io.*;public class CharInput1public static void main(String args)throws IOException/必须做异常处理int a;try

    31、System.out.print(请输入一个字符:);a=System.in.read();System.out.println(你输入的字符是+(char)a);catch(IOException e)System.out.println(错误信息为:+e.toString();9.5 System.in和System.out对象【例9-3】输入一行字符,在屏幕上显示该行字符。import java.io.*;public class CharInput2 public static void main(String args)byte buffer=new byte255;System.o

    32、ut.println(请在下面输入一行字符:);try System.in.read(buffer,0,255);/System.in.read抛出异常catch(Exception e)/捕获异常并处理 System.out.println(读取输入字符出错,错误信息为:+e.toString();System.out.println(您刚才输入的一行字符为:);String inputStr=new String(buffer);System.out.println(inputStr);1.FilelnputStream FilelnputStream 用于顺序访问本地文件,从超类继承re

    33、ad()、close()等方法对文件进行操作,不支持mark()方法和reset()方法。构造方法:(1)FilelnputStream(String filepath)(2)FilelnputStream(File fileobj)例:FilelnputStream f1=new FilelnputStream(aa.Java)File f=new File(aa.Java)FilelnputStream f2=new FilelnputStream(f);9.6 FileInputStream9.6 FileInputStream类和类和FileOutputStreamFileOutput

    34、Stream类类 9.6 FileInputStream9.6 FileInputStream类和类和FileOutputStreamFileOutputStream类类 方方 法法说说 明明int available()返回可读入的字节数。返回可读入的字节数。void close()关闭输入流,并释放任何与该流有关的资源。关闭输入流,并释放任何与该流有关的资源。protected void finalize()当读到无用信息时,关闭该流。当读到无用信息时,关闭该流。FileDescriptor get FD()返回与该流有关的文件描述符返回与该流有关的文件描述符(即文件的完整路径即文件的完整

    35、路径)。int read()从输入流中读取一个字节的数据。从输入流中读取一个字节的数据。int read(byte b)将数据读入到一个字节数组将数据读入到一个字节数组b 中。中。int read(byte b,int off,int len)将将len个字节的数据读入到一个字节型数组个字节的数据读入到一个字节型数组b 中,中,从下标从下标off开始存放,并返回实际读入的字节数。开始存放,并返回实际读入的字节数。long skip(long n)跳过输入流上的跳过输入流上的n个字节。个字节。2.FileOutputStream Fileoutputstream 用于向一个文本文件写数据。它从超

    36、类中继承write()、close()等方法。构造方法:(1)FileOutputStream(String filepath)(2)FileOutputStream(File fileobj)(3)FileOutputStream(String filepath,boolean append)(4)FileOutputStream(File fileobj,boolean append)9.6 FileInputStream9.6 FileInputStream类和类和FileOutputStreamFileOutputStream类类 9.6 FileInputStream9.6 File

    37、InputStream类和类和FileOutputStreamFileOutputStream类类 方 法说 明void close()关闭输出流,并释放任何与该流有关的资源。void finalize()当写到无用信息时,关闭该流。void write(int b)将字节数据b 写到输出流中。void write(byte b)将一个字节数组b 中的数据写到输出流中。long skip(long n)跳过输出流上的n个字节。文件字节流【例9-4】建立两个文件file1.txt和file2.txt,对文件file1.txt输入内容“Hello World!”,并将其内容复制给file2.txt

    38、。import java.io.*;class FilesCopy public static void main(String args)try FileOutputStream fos1=new FileOutputStream(file1.txt);/创建FileOutputStream对象 int b;System.out.println(请输入字符串:);while(b=System.in.read()!=n)fos1.write(b);/将字符写入到输出流中 fos1.close();/关闭输出流 FileInputStream fis=new FileInputStream(fi

    39、le1.txt);/创建FileInputStream对象 FileOutputStream fos=new FileOutputStream(file2.txt);/创建FileOutputStream对象 int c;while(c=fis.read()!=1)fos.write(c);/将一个字节写入到输出流中fis.close();/关闭输入流fos.close();/关闭输出流 System.out.println(成功保存并复制!);catch(FileNotFoundException e)System.out.println(FileStreamsTest:+e);catch(

    40、IOException e)System.out.println(FileStreamsTest:+e);FileReader 类是一个以字符方式读取文件内容的Reader 类的子类,最常用构造方法:FileReader(String filePath)FileReader(File fileobj)FileWriter 类是一个以字符方式写文件内容的Writer类的子类,最常用构造方法如下:FileWriter(String filePath)FileWriter(String filePath,boolean append)FileWriter(File fileobj)9.7 FileR

    41、eader类和FileWriter类9.8 过滤流 Java对I/O访问还提供了同步处理机制,这就是过滤流。保证某时刻只有一个线程访问一个I/O流。过滤流主要是由FilterInputStream和FilterOutputStream抽象类实现,由这两个抽象类可以派生出一些过滤子类,重写父类FilterInputStream和FilterOutputStream的所有方法。9.8 过滤流 例如,BufferedInputStream可以对任何种类的输入流进行带缓冲区的封装以达到性能的改善(可减少程序I/O操作次数,提高程序执行效率)。过滤流与节点流的连接是通过在过滤流的构造方法中指定入口参数,

    42、即节点流来实现的。例如:FileInputStream in=new FileInputStream(“text”);BufferedInputStream bufin=new BufferedInputStream(in);首先把过滤流连接到某个I/O上,再通过构造方法的参数去指定连接的I/O流。9.8 过滤流 BufferedInputStream类/BufferedOutputStream类 为了提供数据的传输效率,为一个流配备缓冲区(buffer),成为缓冲流。缓冲流输入输出是一个非常普通的性能优化。BufferedInputStream类构造方法:(1)public Buffered

    43、InputStream(InputStream in)(2)public BufferedInputStream(InputStream in,int size)BufferedOutputStream类构造方法:(1)public BufferedOutputStream(OutputStream out)(2)public BufferedOutputStream(OutputStream out,int size)9.8 过滤流 DataInputStream类和DataOutputStream类 DataInputStream:从已定义的节点输入流中读取Java基本数据类型的数据,如布

    44、尔型数、整型数、浮点数等,再生成一个数据输入流。DataOutputStream:将Java基本数据类型数据写到一个数据输出流中。构造方法如下:(1)pubilc DataInputStream(InputStream in):创建一个新的DataInputStream,该流从输入流in读取数据。(2)pubilc DataOutputStream(OutputStream out):在输出流out上创建一个新的DataOutputStream,使DataOutputStream的输出数据能够输出到输出流out中。9.8 过滤流 DataInputStream类提供的读取数据的部分方法如下:b

    45、yte readByte()boolean readBoolean()double readDouble()float readFloat()char readChar()short readshort()long readLong()int readInt()9.8 过滤流 DataOutputStream类包含与DataInputStream类读方法相对应的写方法,部分方法如下:void writeByte(byte)void writeBoolean(boolean)void writeLong(long)void writeChar(char)void writeDouble(doub

    46、le)void writeFloat(float)void writeshort(short)void writeInt(int)void writeBytes(String)void writeChars(String)9.8 过滤流【例9-5】使用过滤缓冲输出流提高输出效率。import java.io.*;public class BufferDemopublic static void main(String args)try byte b=49,50,51,52,53,5,66,67,68,69,97,98,99,100,101;FileOutputStream fos=new Fi

    47、leOutputStream(one.dat,true);BufferedOutputStream bos=new bufferedOutputStream(fos);/定义一个数据缓冲输出流 DataOutputStream dos=new DataOutputStream(bos);/将字节数组的数据输出到缓冲区 dos.write(b,0,b.length);dos.flush();Catch(IOException e)System.out.println(e.toString();RandomAccessFile类 可实现对文件的随机读写操作。在Java.io 包中,但与包中的输入输

    48、出流类不相关,它不是从InputStream 类或OutputStream 类派生的。实现了Datalnput 和Dataoutput 接口,支持这两个接口的过滤器将适用于RandomAccessFile 9.9 文件的随机访问 1.构造方法 RandomAccessFile 类提供两个构造方法:(1)public RandomAccessFile(String name,String mode)throws FileNotFoundException(2)public RandomAccessFile(File file,String mode)throws FileNotFoundExce

    49、ption9.9 文件的随机访问 参数mode 有四种取值:r 以只读方式打开文件;以只读方式打开文件;rw 以读写方式打开文件,则用一个以读写方式打开文件,则用一个RandomAccessFile 对象就可以同时进行读、写两种对象就可以同时进行读、写两种操作;操作;rwd 以读写方式打开文件,并且要求对文件以读写方式打开文件,并且要求对文件内容的更新要同步地写到底层存储设备;内容的更新要同步地写到底层存储设备;rws -与与“rwd”基本相同,只是还可以更新文基本相同,只是还可以更新文件的元数据(件的元数据(MetaData)。)。9.9 文件的随机访问 2.随机存取文件的操作(1)文件引用

    50、的操作 文件引用的运行规律:一是新建RandomAccessFile 对象的文件引用位于文件的开头处;另外,每次读写操作后,文件位置引用都相应后移读写的字节数。9.9 文件的随机访问 2.随机存取文件的操作(1)文件引用的操作9.9 文件的随机访问方方 法法说说 明明long getFilePointer()返回当前文件引用,即从文件开头算起的绝对位置。void seek(long pos)将文件引用定位到指定位置。参数pos是相对于文件开头的绝对偏移量。longlength()返回文件长度。可以通过将文件长度与文件引用相比较,判断是否读到了文件尾。int skipBytes(int n)从当

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:javaio中的基本流类-MINGJNU课件.ppt
    链接地址:https://www.163wenku.com/p-5203628.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库