版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计1JavaI/O操作概念JavaI/O类JavaI/O操作标准输入/输出文件读写操作目录管理随机访问文件文件属性2概念I/O来源控制台(console,如DOS窗口)打印/读入文件(file)读/写网络接口(TCP/UDP端口)读/写针对数据的读写以流(stream)的方式对数据进行操作数据源程序读出数据流目的程序写入数据流流的重要特性顺序读/写sequentially3概念读/写流的一般流程读(Reading)openastream//打开读出流whilemoreinformation//判断
readinformation//读closethestream//关闭流写(Writing)openastream//打开写入流whilemoreinformation//判断
writeinformation//写closethestream//关闭流4概念两种流的定义(读取信息的基本数据单位)字节流(bytestream):一个字节(8-bit)一个字节读/写字符流(characterstream):一个字符一个字符读/写(具有特定字符编码的数据)java语言6A617661D3EFD1D4以字节流的方式读:读8次,8个字节以字符流的方式读:读6次,6个字符5JavaI/O操作概念JavaI/O类JavaI/O操作标准输入/输出文件读写操作目录管理随机访问文件文件属性6JavaI/O类字节流的读/写操作(来自JDK1.0)java.io.InputStream(抽象类)publicabstract
intread()publicint
read(byteb[])publicint
read(byteb[],intoffset,intlength)到达流的终点,无数据读出则返回-1java.io.OutputStream(抽象类)publicabstractvoidwrite(intb)publicvoidwrite(byteb[])publicvoidwrite(byteb[],intoffset,intlength)所有的读/写函数都抛出java.io.IOException7JavaI/O类字符流的读/写操作(来自JDK1.1)java.io.Reader(抽象类)publicintread()publicint
read(char
cbuf[])publc
abstract
int
read(char
cbuf[],intoffset,intlength)到达流的终点,无数据读出则返回-1java.io.Writer(抽象类)publicvoidwrite(intc)publicvoidwrite(char
cbuf[])publicvoidwrite(char
cbuf[],intoffset,intlength)所有的读/写函数都抛出java.io.IOException8JavaI/O类I/O流的层次关系classjava.io.InputStream的子类classjava.io.ByteArrayInputStreamclassjava.io.FileInputStreamclassjava.io.FilterInputStreamclassjava.io.BufferedInputStreamclassjava.io.DataInputStream
classjava.io.LineNumberInputStreamclassjava.io.PushbackInputStreamclassjava.io.ObjectInputStream
classjava.io.PipedInputStreamclassjava.io.SequenceInputStreamclassjava.io.StringBufferInputStream………9JavaI/O类I/O流的层次关系classjava.io.OutputStream的子类classjava.io.ByteArrayOutputStreamclassjava.io.FileOutputStreamclassjava.io.FilterOutputStreamclassjava.io.BufferedOutputStreamclassjava.io.DataOutputStream
classjava.io.PrintStreamclassjava.io.ObjectOutputStreamclassjava.io.PipedOutputStream………10JavaI/O类I/O流的层次关系classjava.io.Reader的子类classjava.io.BufferedReader
classjava.io.LineNumberReaderclassjava.io.CharArrayReaderclassjava.io.FilterReader
classjava.io.PushbackReaderclassjava.io.InputStreamReader
classjava.io.FileReaderclassjava.io.PipedReaderclassjava.io.StringReader………11JavaI/O类I/O流的层次关系classjava.io.Writer的子类classjava.io.BufferedWriterclassjava.io.CharArrayWriterclassjava.io.FilterWriterclassjava.io.OutputStreamWriter
classjava.io.FileWriterclassjava.io.PipedWriterclassjava.io.PrintWriterclassjava.io.StringWriter………12JavaI/O类I/O流的分类(12个功能类)I/O类型所用到的类描述文件FileReader/FileWriterFileInputStream/FileOutputStream文件流(读/写文件)缓冲BufferedReader/BufferedWriterBufferedInputStreamBufferedOutputStream提高读/写效率打印PrintWriter
PrintStream
(System.out.println())内存CharArrayReader/CharArrayWriterByteArrayInputStreamByteArrayOutputStreamStringReader/StringWriterStringBufferInputStream读/写内存13JavaI/O类I/O流的分类(12个功能类)I/O类型所用到的类描述字节流和字符流的转换InputStreamReaderOutputStreamWriter将InputStream中读入的字节转为字符/将字符转为字节写入OutputStream管道pipePipedReader/PipedWriterPipedInputStream/PipedOutputStream文件流(读/写文件)连接ConcatenationSequenceInputStream多个输入流连接为一个输入流对象串行化ObjectInputStreamObjectOutputStreamObjectSerialization14JavaI/O类I/O流的分类(12个功能类)I/O类型所用到的类描述基本数据转化DataInputStreamDataOutputStreamJAVA基本数据类型的读/写计数LineNumberReaderLineNumberInputStream读操作时记录行数PeekingAheadPushbackReaderPushbackInputStream可回退缓存(pushbackbuffer)过滤FilterReader/FilterWriterFilterInputStream/FilterOutputStream在读/写操作时对数据进行过滤15JavaI/O操作概念JavaI/O类JavaI/O操作标准输入/输出文件读写操作目录管理随机访问文件文件属性16JavaI/O操作主要内容标准输入/输出控制台屏幕打印和键盘读入文件I/O操作文件读写如何提高文件读写效率流的包装(Wrap)基本数据转换流目录管理随机访问文件(RandomAccessFile)文件属性17输出:控制台屏幕打印classTest{ publicstaticvoidmain(Stringargs[]){
System.out.println(“HelloWorld!”); }}标准输入/输出18输入:键盘读入importjava.io.IOException;classTest{ publicstaticvoidmain(Stringargs[])throws
IOException{ byte[]b=newbyte[10];
System.out.println("Receivednumber="+System.in.read(b)); }}标准输入/输出C:\>javaTestAReceivednumber=3C:\>19文件读/写流程打开文件流条件判断读出/写入关闭文件流两种类型文件FileInputStream/FileOutputStream(字节流)FileReader/FileWriter(字符流)文件读写操作20字节流构造方法publicFileInputStream(Filefile)throwsFileNotFoundExceptionpublicFileInputStream(Stringname)throwsFileNotFoundExceptionpublicFile(Stringpathname)publicFileOutputStream(Filefile)throwsFileNotFoundExceptionpublicFileOutputStream(Filefile,booleanappend)throwsFileNotFoundException//是否向已存在的文件后添加publicFileOutputStream(Stringname)throwsFileNotFoundExceptionpublicFileOutputStream(Stringname,booleanappend)throwsFileNotFoundException文件读写操作21文件读写-实例1文件读写操作importjava.io.*;publicclassCopyBytes{publicstaticvoidmain(String[]args)throwsIOException{FileinputFile=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(byte[]b)throwsIOExceptionpublicintread(byte[]b,intoff,int
len)throwsIOExceptionFileInputStreamin=newFileInputStream(“original.txt");FileOutputStreamout=newFileOutputStream(“result.txt");publicvoidwrite(intb)throwsIOExceptionpublicvoidwrite(byte[]b)throwsIOExceptionpublicvoidwrite(byte[]b,intoff,int
len)throwsIOException22字符流构造方法publicFileReader(Filefile)throwsFileNotFoundExceptionpublicFileReader(String
fileName)throwsFileNotFoundExceptionpublicFile(Stringpathname)publicFileWriter(Filefile)throwsIOExceptionpublicFileWriter(Filefile,booleanappend)throwsIOExceptionpublicFileWriter(String
fileName)throwsIOExceptionpublicFileWriter(String
fileName,booleanappend)throwsIOException文件读写操作23文件读写-实例2文件读写操作importjava.io.*;publicclassCopy{publicstaticvoidmain(String[]args)throwsIOException{FileinputFile=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(char[]cbuf)throwsIOExceptionpublicintread(char[]cbuf,intoff,int
len)throwsIOExceptionpublicvoidwrite(intb)throwsIOExceptionpublicvoidwrite(char[]cbuf)throwsIOExceptionpublicvoidwrite(char[]cbuf,intoff,int
len)throwsIOException24两类缓冲流针对字节流java.io.BufferedInputStream类java.io.BufferedOutputStream类针对字符流java.io.BufferedReader类java.io.BufferedWriter类如何提高文件读写效率25构造方法publicBufferedInputStream(InputStreamin)2048bytespublicBufferedInputStream(InputStreamin,intsize)publicBufferedOutputStream(OutputStreamout)512bytespublicBufferedOutputStream(OutputStreamout,intsize)publicBufferedReader(Readerin)8192bytespublicBufferedReader(Readerin,int
sz)publicBufferedWriter(Writerout)8192bytepublicBufferedWriter(Writerout,int
sz)如何提高文件读写效率26
Stringfilename=“test.txt”;
FileInputStream
fis=newFileInputStream(filename);
intcount=0;
intc;while((c=fis.read())!=-1){ if(c=='A'){ count++; }}
fis.close();
System.out.println(count);如何提高文件读写效率-实例1如何提高文件读写效率
Stringfilename=“test.txt”;
FileInputStream
fis=newFileInputStream(filename);
BufferedInputStream
bis=newBufferedInputStream(fis);
intcount=0;
intc;while((c=bis.read())!=-1){ if(c=='A'){ count++; }}
fis.close();
System.out.println(count);
FileInputStream
fis=newFileInputStream(“test.txt”);
intcount=0;finalintBUFSIZE=1024;bytebuf[]=newbyte[BUFSIZE];
int
len;while((len=fis.read(buf))!=-1){for(inti=0;i<len;i++){if(buf[i]=='A'){count++;}}}
fis.close();27
Stringfilename=“test.txt”;
FileReader
fr=newFileReader(filename);
BufferedReader
br=newBufferedReader(fr);
intcount=0;while(br.readLine()!=null){ count++;}
br.close();
System.out.println(count);如何提高文件读写效率-实例2如何提高文件读写效率28概述流的包装(wrap)
FileReader
fr=newFileReader(filename);
BufferedReader
br=newBufferedReader(fr);
BufferedReader
br=newBufferedReader(newFileReader(filename));
PrintWriterout=newPrintWriter( newBufferedWriter(new
FileWriter(filename)));
publicStringreadLine()injava.io.BufferedReaderpublicvoidprintln(Stringx)injava.io.PrintWriter利用不同流的特点(方法)寻找合适的方法完成特定的需求对已有的流进行再处理29流的种类节点流直接对数据源进行读/写操作的流处理流对一个已有的流进行某种操作的流流的包装(wrap)30节点流FileInputStream,PipedInputStream,ByteArrayInputStream,StringBufferInputStreamFileOutputStream,PipedOutputStream,ByteArrayOutputStreamCharArrayReader,FileReader,PipedReader,StringReaderCharArrayWriter,FileWriter,PipedWriter,StringWriter流的包装(wrap)31处理流FilterOutputStream,DataOutputStream,BufferedOutputStream,PrintStreamFilterInputStream,LineNumberInputStream,DataInputStream,BufferedInputStream,PushbackInputStreamBufferedReader,LineNumberReader,InputStreamReader,FilterReader,PushBackReaderBufferedWriter,OutputStreamReader,FilterWriter,PrintWriter流的包装(wrap)32一个实例java.io.FileReaderpublicFileReader(Filefile)throwsFileNotFoundExceptionpublicFileReader(String
fileName)throwsFileNotFoundExceptionjava.io.BufferedReaderpublicBufferedReader(Readerin)8192bytespublicBufferedReader(Readerin,int
sz)流的包装改变了流的行为流的包装(wrap)33流的包装(wrap)-实例1流的包装(wrap)importjava.io.*;publicclassEcho{publicstaticvoidmain(String[]args)throwsIOException{
BufferedReaderin=newBufferedReader( newInputStreamReader(System.in)); Strings;
while((s=in.readLine()).length()!=0)
System.out.println(s);}}publicstaticfinalInputStream
in(java.lang.System)publicInputStreamReader(InputStreamin)publicBufferedReader(Readerin)程序如何结束(跳出while循环)?34概述java.io.DataInputStream类publicDataInputStream(InputStreamin)publicfinalboolean
readBoolean()publicfinalbytereadByte()publicfinalcharreadChar()publicfinalint
readInt()java.io.DataOutputStream类publicDataOutputStream(OutputStreamout)publicfinalvoidwriteBoolean(booleanv)publicfinalvoidwriteByte(intv)publicfinalvoidwriteChar(intv)publicfinalvoidwriteInt(intv)基本数据转换流35DataOutputStreamout=newDataOutputStream(new
FileOutputStream("invoice1.txt"));doubleprices[]={19.99,9.99};intunits[]={12,8};Stringdescs[]={"JavaT-shirt","JavaMug"};for(inti=0;i<prices.length;i++){
out.writeDouble(prices[i]);
out.writeChar('\t');
out.writeInt(units[i]);
out.writeChar('\t');
out.writeChars(descs[i]);
out.writeChar('\n');}out.close();基本数据转换流-实例基本数据转换流DataInputStreamin=newDataInputStream( newFileInputStream("invoice1.txt"));doubletotal;try{ while(true){ doubleprice=in.readDouble();
in.readChar();
intunit=in.readInt();
in.readChar(); charchr;
StringBuffer
desc=newStringBuffer(20); while((chr=in.readChar())!=‘\n’)
desc.append(chr);
System.out.println("You'veordered"+unit+"units of"+desc+"at$"+price); total=total+unit*price; }}catch(EOFExceptione){}System.out.println("ForaTOTALof:$"+total);in.close();19.9912JavaT-shirt9.998JavaMug36概述java.io.File类:文件和目录的路径名构造方法publicFile(Stringpathname)publicFile(Stringparent,Stringchild)publicFile(Fileparent,Stringchild)parent通常表示一个目录,child则表示一个目录或文件路径名(pathname)UNIX平台上绝对路径的前缀“/”,相对路径无前缀,例“/etc/inetd.conf”、“inetd.conf”Windows平台,绝对路径名的前缀由“盘符:\”组成;UNC路径名前缀为“\\”,然后是主机名和共享名,相对路径名无盘符,例“c:\windows\notepad.exe”、“notepad.exe”目录管理37方法publicboolean
canWrite()/canRead()publicbooleanexists()publicbooleandelete()删除文件或目录,若删除目录,要求该目录必须为空publicboolean
createNewFile()创建一个空文件,当且仅当该文件不存在publicboolean
isDirectory()/isFile()/isHidden()publiclonglastModified()/publicboolean
setLastModified(longtime)publicString[]list()得到当前目录下的所有文件名和目录名,若该File对象不是表示目录,则返回nullpublicboolean
mkdir()/mkdirs()创建一个目录publicboolean
renameTo(File
dest)publicboolean
setReadOnly()目录管理38目录管理—方法举例目录管理importjava.io.File;publicclassDirList{ publicstaticvoidmain(String[]args){ Filepath=newFile("."); String[]list=path.list();
for(inti=0;i<list.length;i++)
System.out.println(list[i]); }}39目录管理—方法举例目录管理importjava.io.File;importjava.io.FilenameFilter;publicclassDirList{ publicstaticvoidmain(String[]args){ Filepath=newFile("."); String[]list=path.list(newDirFilter(args[0])); for(inti=0;i<list.length;i++)
System.out.println(list[i]); }}classDirFilterimplementsFilenameFilter{ Stringkey;
DirFilter(Stringkey){this.key=key;} publicboolean
accept(Filedir,Stringname){ Stringf=newFile(name).getName(); returnf.indexOf(key)!=-1; }}java.util.FilenameFilter
接口
publicboolean
accept(Filedir,Stringname);//是否指定的文件应包含在文件列表中publicStringgetName()injava.io.File//获得文件或目录名,仅仅是最后的部分40随机访问文件(RandomAccessFile)java.io.RandomAccessFile类读写操作在同一个类中完成,须在构造对象时指定参数通过移动文件指针(filepointer)在文件的指定位置进行读写操作构造方法publicRandomAccessFile(Stringname,Stringmode)throwsFileNotFoundExceptionpublicRandomAccessFile(Filefile,Stringmode)throwsFileNotFoundExceptionmode:“r”,“rw”随机访问文件41方法publicvoidseek(longpos)publicintread()publicint
read(byte[]b)publicint
read(byte[]b,intoff,int
len)publicfinalboolean
readBoolean()/readByte()/readChar()/readShort()/readInt()/readDouble()/readFloat()publicfinalStringreadLine()publicvoidwrite(intb)publicvoidwrite(byte[]b)publicvoidwrite(byte[]b,intoff,int
len)publicfinalvoidwriteBoolean()/writeByte()/writeChar()/writeShort()/writeInt()/writeDouble()/writeFloat()随机访问文件42随机访问文件(RandomAccessFile)-实例随机访问文件RandomAccessFile
rf=newRandomAccessFile("rtest.dat","rw");for(inti=0;i<10;i++)
rf.writeDouble(i*1.414);rf.close();rf=newRandomAccessFile("rtest.dat","rw");rf.seek(5*8);rf.writeDouble(47.0001);rf.close();rf=newRandomAccessFile("rtest.dat","r");for(inti=0;i<10;i++)
System.out.println("Value"+i+":"+rf.readDouble());rf.close();运行结果:Value0:0.0Value1:1.414Value2:2.828Value3:4.242Value4:5.656Value5:47.0001Value6:8.484Value7:9.898Value8:11.312Value9:12.72599999999999943文件的特性读和写的权限文件长度修改时间是否是目录java.io.File类设定文件属性查询文件属性文件属性44文件属性获取文件路径importjava.io.*;classAttrDemo1{publicstaticvoidmain(String[]args)throwsIOException{Filetestfile=newFile("."+File.separatorChar+"testfile1");
testfile.createNewFile();
System.out.println("name="+testfile.getName());
System.out.println("path="+testfile.getPath());
System.out.println("absolutepath="+testfile.getAbsolutePath());
Syste
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024安全生产培训
- 2024至2030年中国处方插数据监测研究报告
- 2023年液压破拆属具项目综合评估报告
- 2024年特色风味及小吃服务项目成效分析报告
- 2024至2030年中国自动上胶折边机数据监测研究报告
- 2024至2030年中国灵敏(扇形)分裂式分度凸轮数据监测研究报告
- 2024至2030年中国数字检流计数据监测研究报告
- 2024至2030年中国室内外装饰材料行业投资前景及策略咨询研究报告
- 2024至2030年中国变色瓷杯数据监测研究报告
- 内蒙古巴彦淖尔市(2024年-2025年小学五年级语文)人教版小升初真题((上下)学期)试卷及答案
- 中国数据中心产业发展白皮书(2023年)
- 剪刀式车升降机施工方案
- 口腔诊所患者投诉制度范本
- 国家开放大学电大专科《刑法学(1)》案例分析题题库及答案
- Invoice商业发票模板
- 国家开放大学中国近代史纲要社会实践报告(通用20篇)
- 工艺、设备设施交付检维修手续
- 中药房用中药饮片用户需求书
- 妊娠期高血压疾病诊治指南2020完整版
- 成人高脂血症食养指南(2023年版)解读课件PPT
- 跨境电商物流与供应链管理PPT全套完整教学课件
评论
0/150
提交评论