javaio之fileinputstream和fileoutputstream源码分析

javaio之fileinputstream和fileoutputstream源码分析

ID:30775810

大小:168.00 KB

页数:18页

时间:2019-01-03

javaio之fileinputstream和fileoutputstream源码分析_第1页
javaio之fileinputstream和fileoutputstream源码分析_第2页
javaio之fileinputstream和fileoutputstream源码分析_第3页
javaio之fileinputstream和fileoutputstream源码分析_第4页
javaio之fileinputstream和fileoutputstream源码分析_第5页
资源描述:

《javaio之fileinputstream和fileoutputstream源码分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一、引子文件,作为常见的数据源。关于操作文件的字节流就是—FilelnputStream&FileOutputStream。它们是Basic10字节流屮重要的实现类。二、FilelnputStream源码分析FilelnputStream源码如卜:/***FilelnputStream从文件系统的文件中获取输入字节流。文件取决于主机系统。*比如读取图片等的原始字节流。如果读取字符流,考虑使用FiLeReader.*/publieclassSFilelnputStreamextendsInputstream{/*

2、文件描述符类-一此处用于打开文件的句柄*/privatefinalFileDescriptorfd;/*引用文件的路径*/privatefinalStringpath;/*文件通道,NIO部分*/privateFilechannelchannel=null;privatefinalObjectcloseLock=newObject();privatevolatilebooleanclosed=false;privatestaticfinalThreadLocalrunningFinalize=

3、newThreadLocalo();privatestaticbooleanisRunningFinalize(){Booleanval;if((val=runningFinalize.get())!=null)returnval・booleanValue();returnfalse;}/*通过文件路径名來创建FileInputStream*/publicFileinputstream(Stringname)throwsFi1eNotFoundException{this(name!=null?newFile(

4、name):null);}/*通过文件來创建Fileinputstream*/publicFilelnputStream(Filefile)throwsFileNotFoundException(Stringname=(file!=null?file・getPath():null);SecurityManagersecurity=System.getSecurityManager();if(security!=null){security・checkRead(name);}if(name==null){thro

5、wnewNullPointerException();}if(file.isInvalidO){thrownewFileNotFoundException(HInvalidfilepath");}fd=newFileDescriptor{);fd・incrementAndGetLUseCount();this.path=name;open(name);}/*通过文件描述符类来创建Fileinputstream*/publicFileinputstream(FileDescriptorfdObj){Securit

6、yManagersecurity=System.getSecurityManager();if(fdObj==null){thrownewNullPointerException();}if(security!=null){security.checkRead(fdObj);}fd=fdObj;path=null;fd・incrementAndGetLUseCount();}/*打开文件,为了下一步读取文件内容。native方法*/privatenativevoidopen(Stringname)throwsF

7、ileNotFoundException;/*从此输入流中读取一个数据字节*/publicintread()throwsIOException{ObjecttraceContext=IoTrace・fileReadBegin(path);intb=0;try{b=readO();}finally{IoTrace.fileReadEndCtraceContLext,b==-1?0:1);}returnb;}/*从此输入流中读取一个数据字节。native方法*/privatenativeintreadO()thro

8、wsIOException;/*从此输入流中读取多个字节到byte数组中。native方法*/privatenativeintreadBytes(byteb[],intoffzintlen)throwsIOExceptio/*从此输入流中读取多个字节到byte数组中。*/publicintread(byteb[])throwsIOException{ObjecttraceContext

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。