您好,欢迎访问三七文档
前一页前一页休息第7章输入输出处理7.1输入/输出概述7.2文件的顺序访问7.3文件的随机访问7.4目录和文件管理7.5其他常用流处理前一页前一页休息基本知识点字节流和字符流的概念标准输入/输出目录和文件管理文件的顺序访问文件的随机访问前一页前一页休息7.1输入输出概述7.1.1输入/输出流概念:数据流(Stream):是所有数据通信通道之中数据的起点和终点。输入数据流——表示从外部设备到到计算机的数据流动输出数据流——表示从计算机到外部设备的数据流动7.1.2输入/输出类输入输出类库——java.io包提供了60多个输入流类和输出流类从结构上分:字节流和字符流?前一页前一页休息7.1输入输出概述7.1.3输入/输出流的基本模型输入流对象输出流对象文件键盘显示器数组等读入数据写出数据数据介质前一页前一页休息7.1输入输出概述—输入/输出类11字节流类(InputStream类及其继承派生关系)java.lang.Objectjava.io.InputStreamjava.io.ByteArrayInputStreamjava.io.PipedInputStreamjava.io.SequenceInputStreamjava.io.StringBufferInputStreamjava.io.FileInputStreamjava.io.DataInputStreamjava.io.LineNumberInputStreamjava.io.BufferedInputStreamjava.io.PushbackInputStream常用方法:read()读数据;available()获取输入流字节数;skip()reset()指针定位mark()前一页前一页休息7.1输入输出概述—输入/输出类21字节流类(OutputStream类及其继承派生关系)java.lang.Objectjava.io.OutputStreamjava.io.ByteArrayOutputStreamjava.io.PipedOutputStreamjava.io.ObjectOutputStreamjava.io.FileOutputStreamjava.io.PrintStreamjava.io.DataOutputStreamjava.io.BufferedOutputStream常用方法:write()写数据;flush()写缓冲区内的所有数据close()关闭输出流前一页前一页休息7.1输入输出概述—字节输入流与字节输出流数据介质读入写出数据介质InputStream对象OnputStream对象1B1B1B1B前一页前一页休息7.1输入输出概述—输入/输出类32字符流类(Reader类及其继承派生关系)java.lang.Objectjava.io.Readerjava.io.BufferedReaderjava.io.LineNumberReaderjava.io.CharArryReaderjava.io.FilerReaderjava.io.PushbackReaderjava.io.InputStreamReaderjava.io.FileReaderjava.io.PipedReaderjava.io.StringReader前一页前一页休息7.1输入输出概述—输入/输出类42字符流类(Witer类及其继承派生关系)java.lang.Objectjava.io.Witerjava.io.BufferedWiterjava.io.CharArryWiterjava.io.FilerWiterjava.io.OutputStreamWiterjava.io.FileWiterjava.io.PipedWiterjava.io.StringWiterjava.io.PrintWiter前一页前一页休息7.1输入输出概述—字符输入流与字符输出流数据介质读入写出数据介质Reader对象Writer对象1个字符若干字节若干字节1个字符前一页前一页休息7.1输入输出概述—标准输入/输出System类是继承Object类终极类,它有三个表示标准输入、标准输出和标准错误的类变量(1)标准输入:inpublicstaticfinalInputStreamin//对应键盘输入(2)标准输出:outpublicstaticfinalOutputStreamin//对应显示器输出(3)标准错误:errpublicstaticfinalPrintStreamerr//对应显示器输出前一页前一页休息输入和输出接口的使用ObjectInputStreamOutputStreamFilterInputStreamFilterOutputStreamDataInputStreamDataOutputStreamDataInputDataOutputRandomAccessFile前一页前一页休息目录和文件管理——File类java.io.File类是java.lang.Object的子类File类是专门用来管理磁盘文件和目录的。每个File类的对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息,如文件或目录的名称、文件的长度、目录中所含文件的个数等。调用File类的方法则可以完成对文件或目录的常用管理操作,如创建文件或目录、删除文件或目录、查看文件的有关信息等。前一页前一页休息目录和文件管理——File类1创建File类对象的构造方法publicFile(Stringpath):使用指定路径构造一个对象。publicFile(Stringpath,Stringname):使用指定路径和字符串构造一个对象。publicFile(Filedir,Stringname):使用指定文件目录和字符串构造一个对象。前一页前一页休息目录和文件管理——File类2File类的常用方法——(1)getName()获取对象所代表的文件名(2)getParent()获取文件对象的路径的父类信息(3)getPath()获取对象所代表文件的路径名(4)canRead()测试能否从指定的文件中读数据(5)canWrite()测试能否对指定的文件写入数据(6)exists()测试文件是否存在(7)length()获取文件对象所代表的文件长度(8)list()获取文件对象指定的目录中文件列表前一页前一页休息目录和文件管理——File类(9)getAbsolutePath()获取文件的绝对路径(10)getCanonicalPath()获取文件对象路径名的标准格式(11)isAbsolute()测试测试此文件对象代表的文件是否是绝对路径(12)isDirectory()测试此文件对象代表的文件是否是一个目录(13)isFile()测试此对象所代表的是否是一个文件(14)delete()删除此对象指定的文件(15)makdir()创建一个目录,其路径名由此文件对象指定(16)makdirs()创建一个目录,其路径名由此文件对象指定并包括必要的父目录2File类的常用方法——前一页前一页休息文件的访问输入/输出流操作的一般步骤:1使用引入语句引入包:importjava.io.*;2根据不同数据源和输入输出任务,建立字节流或字符流对象。3若需要对字节或字符流信息组织加工为数据,在已建字节流或字符流对象上构建数据流对象。4用输入输出流对象类的成员方法进行读写操作,需要时设置读写位置指针。5关闭流操作。前一页前一页休息7.2文件的顺序访问—文件字节流FileInputStream类:用于读取文件中字节数据的字节文件输入流类。1FileInputStream类构造方法(1)使用指定的字符串创建一个FileInputStream对象。FileInputStream(Stringname)(2)使用指定的文件对象创建一个FileInputStream对象。FileInputStream(Filefile)(3)使用指定的FileDescriptor创建一个FileInputStream对象。FileInputStream(FileDescriptorfdObj)前一页前一页休息7.2文件的顺序访问—文件字节流FileInputStream类:用于读取文件中字节数据的字节文件输入流类。2FileInputStream类的常用成员方法(1)read():自输入流中读取一个字节。(2)read(byteb[]):将输入数据存放在指定的字节数组b中(3)read(byteb[],intoffset,intlen):自输入流中的offset位置开始读取len个字节并存放在指定的数组b中。(4)available():返回输入流中的可用字节个数。(5)skip(longn):从输入流中跳过n个字节。前一页前一页休息7.2文件的顺序访问—文件字节流FileOutputStream类:用于向文件写入字节数据的字节文件输出流。1FileOutputStream类构造方法(1)使用指定的字符串创建一个FileOutputStream对象。FileOutputStream(Stringname)(2)使用指定的文件对象创建一个FileOutputStream对象。FileOutputStream(Filefile)(3)使用指定的FileDescriptor创建一个FileOutputStream对象。FileOutputStream(FileDescriptorfdObj)前一页前一页休息7.2文件的顺序访问—文件字节流FileOutputStream类:用于向文件写入字节数据的字节文件输出流。2FileOutputStream类的常用成员方法(1)write(intb):写入一个字节到文件输入流。(2)write(byteb[]):写一个字节数组。(3)write(byteb[],intoffset,intlen):将字节数组b从offset位置开始的len个字节数组的数据写到输出流中。(4)getFD():获取与此流关联的文件描述符。(5)close(longn):关闭输入/输出流,释放占用的所有资源。前一页前一页休息7.2文件的顺序访问实例:在终端上显示指定文本的内容,文本文件名通过命令行方式提供importjava.io.*;classShowFile{publicstaticvoidmain(Stringargs[])IOException{inti;FileInputStreamfin=null;//文件输入流类对象的声明try{fin=newFileInputStream(args[0]);}catch(FileNotFoundExceptione){System.out.println(“文件未找到!”)System.exit(-1);}catch(ArrayIndexOutOfBoundsExceptione){System.out.println(“用法:javaShowFile文件名”);System.exit(-2);}wile((i=fin.read())!=-1)System.out.print((char)i);//读字符值到EOFfin.close();}}前一页前一页休息7.2文件的顺序访问配合其它功能较强的输入/输出流完成文件的读写DataInputStream类和DataOutputStream类使用目的:利用DataInputStream类和DataOutputStream类可以方便地从文件中读写不同类型的数据。前一页前一页休息7.2文件的顺序访问—文件字符流FileReader类和FileWriter类FileReader类用于读取文件字符数据。1FileReader类的构造方法(1)FileReader(StringfileName)使用指定的文件名创建一个FileReader对象。(2)FileReader(Filefile)使用指定的文件对
本文标题:输入输出处理
链接地址:https://www.777doc.com/doc-4873518 .html