您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > Java第八章 输入输出系统(基础篇)
第八章输入/输出系统流与文件标准输入/输出流输入/输出§6.1流和文件流:数据从计算机的输入向输出流动,即流的产生。流有两种:文本流(字符)和二进制流(字节)在JAVA里,流是一些类。文件也是一个逻辑概念。计算机的所有设备都可理解为一个文件。流可与文件建立联系。(File)外部设备输入流计算机内部输出流外部设备§6.1流和文件--常见流类java.lang.Objectjava.io.Filejava.io.RandomAccessFilejava.io.InputStreamjava.io.OutputStreamjava.io.Readerjava.io.Writer§6.2标准输入/输出标准输入输出属于系统类。系统类实现了用户使用资源时的系统无关编程接口:是最终类;所有变量和方法都是静态的;不用初始化(NEW)就可以使用System.inpublicfinalstaticInputStreamin=newInputStream();read(),read(byteb[],intoff,intlen),read(byteb[])System.outpublicfinalstaticPrintStreamout=newPrintStream();print(),println(),write()System.errpublicfinalstaticPrintStreamerr=newPrintStream();print(),println(),write()§6.2标准输入/输出(例)importjava.io.*;publicclassCount{publicstaticvoidmain(Stringargs[]){try{intcount=0;while(System.in.read()!=-1)count++;System.out.println(inputhas+count+chars);}catch(IOExceptione){System.err.println(CaughtIOException:+e.toString());}}}§6.3文件File创建一个新的文件对象File(Stringpathname)FilemyFile=newFile(〝etc/motd〞);File(Stringparent,Stringchild)FilemyFile=newFile(〝/etc〞,〝motd〞);File(Fileparent,Stringchild)FilemyDir=newFile(〝/etc〞);FilemyFile=newFile(myDir,〝motd〞);§6.3文件FileFile类提供的方法1.文件名的操作(如)publicStringgetName():返回文件对象名字符串;publicStringtoString():返回文件名字符串;publicStringgetParent():返回文件对象父路径名字符串;publicFilegetParentFile():返回文件对象父文件名;publicStringgetAbsolutePath():返回绝对路径名字符串;publicstaticFilecreateTempFile(Stringprefix,Stringsuffix,Filedirectory)throwsIOExceptionpublicstaticFilecreateNewFile()throwsIOException§6.3文件File2.文件属性测试publicbooleancanRead():是否能读指定的文件;publicbooleancanWrite():是否能修改指定的文件;publicbooleanexists():指定的文件是否存在;publicbooleanisDirectory():指定的文件是否是目录;publicbooleanisFile():指定的文件是否是一般文件;publicbooleanisHidden():指定的文件是否是隐藏文件;publicbooleanisAbsolute():指定的文件是否是绝对路径;§6.3文件File3.一般文件信息和工具publiclonglastModified():返回文件最后被修改的时间;publiclonglength():返回文件的字节长度;publicbooleandelete():删除指定的文件,若为目录必须为空才能删除;publicvoiddeleteOnExit():当虚拟机执行结束时,删除指定文件或目录;§6.3文件File4.目录操作publicbooleanmkdir():创建指定的目录;publicbooleanmkdirs():创建指定的目录,包括任何不存在的父目录;publicString[]list():返回指定目录下的文件;publicString[]list(FilenameFilterfilter):返回指定目录下满足文件过滤器的文件;§6.3文件File5.文件属性设置publicbooleansetLastModified(longtime):设置指定目录或文件的最后修改时间;publicbooleansetReadOnly():设置指定目录或文件的只读属性;§6.3文件File6.其他publicURLtoURL()throwsMalformedURLException:将相对路径名存入URL文件;publicintcompareTo(Objecto):与另一个对象比较名字;publicbooleanequals(Objectobj):与另一个对象比较名字;publicinthashCode():返回文件名的哈希码;§6.3文件File—例//FileTest.javaimportjava.io.*;publicclassFileTest{publicstaticvoidmain(Stringargs[]){if(args.length0){for(inti=0;iargs.length;i++){FilefileToTest=newFile(args[i]);info(fileToTest);}}else{System.out.println(“Nofilegiven.”);}}§6.3文件File—例publicstaticvoidinfo(Filef){try{if(f.exists()){System.out.println(f.getName()+exists);System.out.println(Lastmodified:+f.lastModified());System.out.println(Length:+f.length())”System.out.println(Path:+f.getPath());System.out.println(Absolutepath:+f.getAbsolutePath());System.out.println(Parent:+f.getParent());§6.3文件File—例System.out.println(“CanWrite:f.canWrite());}else{System.out.println(Filedoesnotexist)}}catch(Exceptione){System.out.println(e.toString());}}}§6.4字节输入流InputStream字节输入流的方法publicabstractintread()throwsIOException;publicintread(byte[]b)throwsIOException;publicintread(byte[]b,intoff,intlen)throwsIOException;publiclongskip(longn)throwsIOException;publicintavailable()throwsIOException;publicvoidclose()throwsIOException;publicvoidmark(intreadlimit);publicvoidreset()throwsIOException;publicbooleanmarkSupported();§6.4字节输入流InputStreamjava.lang.ObjectFileInputStream:读文件的流PipedInputStream:内部线程通信的输入流ByteArrayInputStream:读字节数组java.io.InputStreamSequenceInputStream:合并输入流的输入流(抽象类)StringBufferInputStream:读字符串FilterInputStream:读数据时处理数据(抽)BufferedInputStream:基本缓冲DataInputStream:原始数据类型LineNumberInputStream:支持行数字PushBackInputStream:读完允许放回AudioInputStream:输入音频数据ObjectInputStream:直接进行对象的读§6.4字节输入流InputStreamFileInputStream重写父类中方法:publicintread()throwsIOException;publicintread(byte[]b)throwsIOException;publicintread(byte[]b,intoff,intlen)throwsIOException;publiclongskip(longn)throwsIOException;publicintavailable()throwsIOException;publicvoidclose()throwsIOException;重写Object类中方法:protectedvoidfinalize()throwsIOException;自己定义方法:publicfinalFileDescriptorgetFD()throwsIOException;不支持mark(),reset();§6.4字节输入流InputStreamFileInputStream建立字节文件输入流:FileInputStreammyFileStream=newFileInputStream(”etc/motd”);FilemyFile=newFile(”etc/motd”);FileInputStreammyFileStream=newFileInputStream(myFile);关闭字节文件输入流:myFileStream.close();§6.4字节输入流InputStream•BufferedInputStream建立字节缓冲输入流:FileInputStreammyFileStream=newFileInputStream(”etc/motd”);BufferedInputStreammyBufferStream=newBufferedInputStream(myFileStream);§6.4字节输入流InputStreamDataInputStream:直接读取任意一种变量类型,如浮点数,整数,字符等publicDataInputStream(InputStreamin)publicfinalcharreadChar()throwsIOException;publicfinalintreadInt()throwsIOException;publicfinalFloatreadFloat()throwsIOException;…FileInputStreamfis=newFileInputStream(”etc/motd”);DataInputStreamdis=newDataInputStream(fis);inti=fis.read(b);intj=dis.readI
本文标题:Java第八章 输入输出系统(基础篇)
链接地址:https://www.777doc.com/doc-3683613 .html