第08章-文件输入输出n.ppt

上传人:wj 文档编号:8928182 上传时间:2023-05-16 格式:PPT 页数:49 大小:190.50KB
下载 相关 举报
第08章-文件输入输出n.ppt_第1页
第1页 / 共49页
第08章-文件输入输出n.ppt_第2页
第2页 / 共49页
第08章-文件输入输出n.ppt_第3页
第3页 / 共49页
第08章-文件输入输出n.ppt_第4页
第4页 / 共49页
第08章-文件输入输出n.ppt_第5页
第5页 / 共49页
第08章-文件输入输出n.ppt_第6页
第6页 / 共49页
第08章-文件输入输出n.ppt_第7页
第7页 / 共49页
第08章-文件输入输出n.ppt_第8页
第8页 / 共49页
第08章-文件输入输出n.ppt_第9页
第9页 / 共49页
第08章-文件输入输出n.ppt_第10页
第10页 / 共49页
第08章-文件输入输出n.ppt_第11页
第11页 / 共49页
第08章-文件输入输出n.ppt_第12页
第12页 / 共49页
第08章-文件输入输出n.ppt_第13页
第13页 / 共49页
第08章-文件输入输出n.ppt_第14页
第14页 / 共49页
第08章-文件输入输出n.ppt_第15页
第15页 / 共49页
第08章-文件输入输出n.ppt_第16页
第16页 / 共49页
第08章-文件输入输出n.ppt_第17页
第17页 / 共49页
第08章-文件输入输出n.ppt_第18页
第18页 / 共49页
第08章-文件输入输出n.ppt_第19页
第19页 / 共49页
第08章-文件输入输出n.ppt_第20页
第20页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第08章-文件输入输出n.ppt

《第08章-文件输入输出n.ppt》由会员分享,可在线阅读,更多相关《第08章-文件输入输出n.ppt(49页珍藏版)》请在冰点文库上搜索。

第08章-文件输入输出n.ppt

1,Java技术基础,2,第八章输入输出,概念JavaI/O类JavaI/O操作标准输入/输出文件读写操作目录管理随机访问文件文件属性,3,概念,I/O来源控制台(console,如DOS窗口)打印/读入文件(file)读/写网络接口(TCP/UDP端口)读/写针对数据的读写以流(stream)的方式对数据进行操作,流的重要特性顺序读/写sequentially,4,概念,读/写流的一般流程读(Reading)openastream/打开读出流whilemoreinformation/判断readinformation/读closethestream/关闭流写(Writing)openastream/打开写入流whilemoreinformation/判断writeinformation/写closethestream/关闭流,5,概念,两种流的定义(读取信息的基本数据单位)字节流(bytestream):

一个字节(8-bit)一个字节读/写字符流(characterstream):

一个字符一个字符读/写(具有特定字符编码的数据),java语言6A617661D3EFD1D4以字节流的方式读:

读8次,8个字节以字符流的方式读:

读6次,6个字符,6,第八章文件输入输出,概念JavaI/O类JavaI/O操作标准输入/输出文件读写操作目录管理随机访问文件文件属性,7,JavaI/O类,字节流的读/写操作(来自JDK1.0)java.io.InputStream(抽象类)publicabstractintread()publicintread(byteb)publicintread(byteb,intoffset,intlength)到达流的终点,无数据读出则返回-1java.io.OutputStream(抽象类)publicabstractvoidwrite(intb)publicvoidwrite(byteb)publicvoidwrite(byteb,intoffset,intlength)所有的读/写函数都抛出java.io.IOException,8,JavaI/O类,字符流的读/写操作(来自JDK1.1)java.io.Reader(抽象类)publicintread()publicintread(charcbuf)publicabstractintread(charcbuf,intoffset,intlength)到达流的终点,无数据读出则返回-1java.io.Writer(抽象类)publicvoidwrite(intc)publicvoidwrite(charcbuf)publicvoidwrite(charcbuf,intoffset,intlength)所有的读/写函数都抛出java.io.IOException,9,JavaI/O类,I/O流的层次关系classjava.io.InputStream的子类classjava.io.ByteArrayInputStreamclassjava.io.FileInputStreamclassjava.io.FilterInputStreamclassjava.io.BufferedInputStreamclassjava.io.DataInputStreamclassjava.io.ObjectInputStreamclassjava.io.PipedInputStreamclassjava.io.SequenceInputStream,10,JavaI/O类,I/O流的层次关系classjava.io.OutputStream的子类classjava.io.ByteArrayOutputStreamclassjava.io.FileOutputStreamclassjava.io.FilterOutputStreamclassjava.io.BufferedOutputStreamclassjava.io.DataOutputStreamclassjava.io.PrintStreamclassjava.io.ObjectOutputStreamclassjava.io.PipedOutputStream,11,JavaI/O类,I/O流的层次关系classjava.io.Reader的子类classjava.io.BufferedReaderclassjava.io.CharArrayReaderclassjava.io.FilterReaderclassjava.io.InputStreamReaderclassjava.io.FileReaderclassjava.io.PipedReaderclassjava.io.StringReader,12,JavaI/O类,I/O流的层次关系classjava.io.Writer的子类classjava.io.BufferedWriterclassjava.io.CharArrayWriterclassjava.io.FilterWriterclassjava.io.OutputStreamWriterclassjava.io.FileWriterclassjava.io.PipedWriterclassjava.io.PrintWriterclassjava.io.StringWriter,13,JavaI/O类,I/O流的分类(12个功能类),14,JavaI/O类,I/O流的分类(12个功能类),15,JavaI/O类,I/O流的分类(12个功能类),16,第八章文件输入输出,概念JavaI/O类JavaI/O操作标准输入/输出文件读写操作目录管理随机访问文件文件属性,17,JavaI/O操作,主要内容标准输入/输出控制台屏幕打印和键盘读入文件I/O操作文件读写如何提高文件读写效率流的包装(Wrap)基本数据转换流目录管理随机访问文件(RandomAccessFile)文件属性网络流操作,18,输出:

控制台屏幕打印classTestpublicstaticvoidmain(Stringargs)System.out.println(“HelloWorld!

”);,标准输入/输出,19,输入:

键盘读入importjava.io.IOException;classTestpublicstaticvoidmain(Stringargs)throwsIOExceptionbyteb=newbyte10;System.out.println(Receivednumber=+System.in.read(b);,标准输入/输出,C:

javaTestAReceivednumber=3C:

20,文件读/写流程打开文件流条件判断读出/写入关闭文件流两种类型文件FileInputStream/FileOutputStream(字节流)FileReader/FileWriter(字符流),文件读写操作,21,字节流构造方法publicFileInputStream(Filefile)throwsFileNotFoundExceptionpublicFileInputStream(Stringname)throwsFileNotFoundExceptionpublicFile(Stringpathname)publicFileOutputStream(Filefile)throwsFileNotFoundExceptionpublicFileOutputStream(Filefile,booleanappend)throwsFileNotFoundException/是否向已存在的文件后添加publicFileOutputStream(Stringname)throwsFileNotFoundExceptionpublicFileOutputStream(Stringname,booleanappend)throwsFileNotFoundException,文件读写操作,22,文件读写-实例1,文件读写操作,importjava.io.*;publicclassCopyBytespublicstaticvoidmain(Stringargs)throwsIOExceptionFileinputFile=newFile(“original.txt);FileoutputFile=newFile(“result.txt);FileInputStreamin=newFileInputStream(inputFile);FileOutputStreamout=newFileOutputStream(outputFile);intc;while(c=in.read()!

=-1)out.write(c);in.close();out.close();,publicintread()throwsIOExceptionpublicintread(byteb)throwsIOExceptionpublicintread(byteb,intoff,intlen)throwsIOException,FileInputStreamin=newFileInputStream(“original.txt);FileOutputStreamout=newFileOutputStream(“result.txt);,publicvoidwrite(intb)throwsIOExceptionpublicvoidwrite(byteb)throwsIOExceptionpublicvoidwrite(byteb,intoff,intlen)throwsIOException,23,字符流构造方法publicFileReader(Filefile)throwsFileNotFoundExceptionpublicFileReader(StringfileName)throwsFileNotFoundExceptionpublicFile(Stringpathname)publicFileWriter(Filefile)throwsIOExceptionpublicFileWriter(Filefile,booleanappend)throwsIOExceptionpublicFileWriter(StringfileName)throwsIOExceptionpublicFileWriter(StringfileName,booleanappend)throwsIOException,文件读写操作,24,文件读写-实例2,文件读写操作,importjava.io.*;publicclassCopypublicstaticvoidmain(Stringargs)throwsIOExceptionFileinputFile=newFile(“original.txt);FileoutputFile=newFile(“result.txt);FileReaderin=newFileReader(inputFile);FileWriterout=newFileWriter(outputFile);intc;while(c=in.read()!

=-1)out.write(c);in.close();out.close();,FileReaderin=newFileReader(“original.txt);FileWriterout=newFileWriter(“result.txt);,publicintread()throwsIOExceptionpublicintread(charcbuf)throwsIOExceptionpublicintread(charcbuf,intoff,intlen)throwsIOException,publicvoidwrite(intb)throwsIOExceptionpublicvoidwrite(charcbuf)throwsIOExceptionpublicvoidwrite(charcbuf,intoff,intlen)throwsIOException,25,两类缓冲流针对字节流java.io.BufferedInputStream类java.io.BufferedOutputStream类针对字符流java.io.BufferedReader类java.io.BufferedWriter类,如何提高文件读写效率,26,构造方法publicBufferedInputStream(InputStreamin)2048bytespublicBufferedInputStream(InputStreamin,intsize)publicBufferedOutputStream(OutputStreamout)512bytespublicBufferedOutputStream(OutputStreamout,intsize)publicBufferedReader(Readerin)8192bytespublicBufferedReader(Readerin,intsz)publicBufferedWriter(Writerout)8192bytepublicBufferedWriter(Writerout,intsz),如何提高文件读写效率,27,Stringfilename=“test.txt”;FileInputStreamfis=newFileInputStream(filename);intcount=0;intc;while(c=fis.read()!

=-1)if(c=A)count+;fis.close();System.out.println(count);,如何提高文件读写效率-实例1,如何提高文件读写效率,Stringfilename=“test.txt”;FileInputStreamfis=newFileInputStream(filename);BufferedInputStreambis=newBufferedInputStream(fis);intcount=0;intc;while(c=bis.read()!

=-1)if(c=A)count+;fis.close();System.out.println(count);,FileInputStreamfis=newFileInputStream(“test.txt”);intcount=0;finalintBUFSIZE=1024;bytebuf=newbyteBUFSIZE;intlen;while(len=fis.read(buf)!

=-1)for(inti=0;ilen;i+)if(bufi=A)count+;fis.close();,28,Stringfilename=“test.txt”;FileReaderfr=newFileReader(filename);BufferedReaderbr=newBufferedReader(fr);intcount=0;while(br.readLine()!

=null)count+;br.close();System.out.println(count);,如何提高文件读写效率-实例2,如何提高文件读写效率,29,概述,流的包装(wrap),FileReaderfr=newFileReader(filename);BufferedReaderbr=newBufferedReader(fr);,BufferedReaderbr=newBufferedReader(newFileReader(filename);,PrintWriterout=newPrintWriter(newBufferedWriter(newFileWriter(filename);,publicStringreadLine()injava.io.BufferedReaderpublicvoidprintln(Stringx)injava.io.PrintWriter,利用不同流的特点(方法)寻找合适的方法完成特定的需求对已有的流进行再处理,30,流的种类节点流直接对数据源进行读/写操作的流处理流对一个已有的流进行某种操作的流,流的包装(wrap),31,节点流FileInputStream,PipedInputStream,ByteArrayInputStream,StringBufferInputStreamFileOutputStream,PipedOutputStream,ByteArrayOutputStreamCharArrayReader,FileReader,PipedReader,StringReaderCharArrayWriter,FileWriter,PipedWriter,StringWriter,流的包装(wrap),32,处理流FilterOutputStream,DataOutputStream,BufferedOutputStream,PrintStreamFilterInputStream,DataInputStream,BufferedInputStream,BufferedReader,InputStreamReader,FilterReaderBufferedWriter,OutputStreamReader,FilterWriter,PrintWriter,流的包装(wrap),33,一个实例java.io.FileReaderpublicFileReader(Filefile)throwsFileNotFoundExceptionpublicFileReader(StringfileName)throwsFileNotFoundExceptionjava.io.BufferedReaderpublicBufferedReader(Readerin)8192bytespublicBufferedReader(Readerin,intsz)流的包装改变了流的行为,流的包装(wrap),34,流的包装(wrap)-实例1,流的包装(wrap),importjava.io.*;publicclassEchopublicstaticvoidmain(Stringargs)throwsIOExceptionBufferedReaderin=newBufferedReader(newInputStreamReader(System.in);Strings;while(s=in.readLine().length()!

=0)System.out.println(s);,publicstaticfinalInputStreamin(java.lang.System)publicInputStreamReader(InputStreamin)publicBufferedReader(Readerin),35,概述java.io.DataInputStream类publicDataInputStream(InputStreamin)publicfinalbooleanreadBoolean()publicfinalbytereadByte()publicfinalcharreadChar()publicfinalintreadInt()java.io.DataOutputStream类publicDataOutputStream(OutputStreamout)publicfinalvoidwriteBoolean(booleanv)publicfinalvoidwriteByte(intv)publicfinalvoidwriteChar(intv)publicfinalvoidwriteInt(intv),基本数据转换流,36,DataOutputStreamout=newDataOutputStream(newFileOutputStream(invoice1.txt);doubleprices=19.99,9.99;intunits=12,8;Stringdescs=JavaT-shirt,JavaMug;for(inti=0;iprices.length;i+)out.writeDouble(pricesi);out.writeChar(t);out.writeInt(unitsi);out.writeChar(t);out.writeChars(descsi);out.writeChar(n);out.close();,基本数据转换流-实例,基本数据转换流,DataInputStreamin=newDataInputStream(newFileInputStream(invoice1.txt);doubletotal;trywhile(true)doubleprice=in.readDouble();in.readChar();intunit=in.readInt();in.readChar();charchr;StringBufferdesc=newStringBuffer(20);while(chr=in.readChar()!

=n)desc.append(chr);System.out.println(Youveordered+unit+unitsof+desc+at$+price);total=total+unit*price;catch(EOFExceptione)System.out.println(ForaTOTALof:

$+total);in.close();,19.9912JavaT-shirt9.998JavaMug,37,概述java.io.File类:

文件和目录的路径名构造方法publicFile(Stringpathname)publicFile(Stringparent,Stringchild)publicFile(Fileparent,Stringchild)parent通常表示一个目录,child则表示一个目录或文件路径名(pathname)UNIX平台上绝对路径的前缀“/”,相对路径无前缀,例“/etc/inetd.conf”、“inetd.conf”Windows平台,绝对路径名的前缀由“盘符:

”组成;UNC路径名前缀为“”,然后是主机名和共享名,相对路径名无盘符,例“c:

windowsnotepad.exe”、“notepad.exe”,目录管理,38,方法publicbooleancanWrite()/canRead()publicbooleanexists()publicbooleandelete()删除文件或目录,若删除目录,要求该目录必须为空publicbooleancre

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2