- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
输入输出流学习完本章后,你应该知道并掌握文件原理分类操作步骤.doc
输入输出流
学习完本章后,你应该知道并掌握:
文件
原理
分类
操作步骤
输入字节流
输出字节流
输入字符流
输出字符流
对象序列化
随机文件访问类
概述
我们常面临这样的情况:需要从文件中读取数据到程序中,把程序中的数据写入到指定的文件中;从互联网读取一个网页的HTML数据到程序中(不是通过浏览器),通过程序向服务器提交数据(不是通过浏览器),等等。
任务分析
要完成诸如文件的读写、网络的读写、内存的读写操作,可通过java.io包下提供的相关输入输出流类来完成。
时间:15课时
相关知识
输入流就是把数据(文件、键盘输入、其他输入设备)读到你的程序中;
输出流是把你程序中的数据输出到外设或文件中
工作任务
文件
Java中的文件类只提供对文件属性的封装,而没有提供对文件的读写操作,如果要达到对
文件的读写操作,要通过后续的文件管道进行
表10.4.1 File类方法
方法说明boolean createNewFile()创建新文件boolean delete()删除文件boolean mkdir()创建一个目录String[] list()返回文件夹下的所有文件名File[] listFiles()返回文件夹下的所有文件boolean isDirectory()判断是否为目录String getName()返回文件名String getPath()返回完整的路径和文件的完整名称long length()返回文件大小,和文件编码有关static File createTempFile(String prefix, String suffix)有时不知道具体路径的情况下,可以在系统的临时文件夹下创建一个临时文件
原理
图10.4.2流工作原理
从上图可以看出建立到源头或目的地的管道,然后就可以管道中读取数据进行操作。
图10.4.2流工作原理
分类
图10.4.3 字节流
图10.4.3 字符流
操作步骤
选择管道
IO管道比较多,首先你要明确从哪儿读取数据或者要把数据写到哪儿去,然后确定一种适当类型的管道,就象我们要建立从家里到自来水厂的管道,是用胶管子、铁管子、钢管子、竹管子,还是什么管子比较适当解决这样的问题。
创建管道
管道类型一旦选定,接下来就是创建管道,调用类型的构造方法创建一根管道,所以你必须了解如果创建这种管道,就是要掌握它的构造方法。
读写操作
管道建立好后,就可以通过管道来读写数据了,对于输入型管道从管道中读取数据,对于输出型管道向管道中写入数据。
关闭管道
管道用完后,需要关闭管道,以释放到和管道相关的系统资源。
输入字节流
InputStream
InputStream是所有输入字节流的父类,用于从管道中按字节读取数据,在读取数据过程中有可能会发生阻塞,在到达管道末尾时返回-1,程序中常以此作为判断数据是否读完的依据。
表10.4.5 InputStream方法说明
方法说明abstract int read()从管道中读取1个字节的数据并返回int read(byte b[])从管道中读取b.length长度的数据填充数组b中(下标从0开始的位置),返回实际读到的数据长度int read(byte b[], int off, int len)从管道中读取指定长度(len)的数据填充数组b中(下标从off开始的位置),返回实际读到的数据长度long skip(long n)跳过指定的长度int available()返回有效长度void close()关闭管道,释放和管道相联的资源void mark(int readlimit)标记void reset()重置boolean markSupported()返回是否支持标记(支持true、不支持false)ByteArrayInputStream
ByteArrayInputStream是内存输入流,建立指向内存的输入流管道,从中读取数据到程序中,可以这样来理解:一旦建立管道,数据就会从源头将管道填满,而管道中有一指针,开始时指针位于管道的最左端没有指向任何数据,当调用read、skip等方法时,指针就会移动指向数据,直到指针没有办法移动,这时到达了管道的末尾。
String data = abcdefghi;
ByteArrayInputStream bis = new ByteArrayInputStream(data.getBytes());
bis.read();//移动1个指针位、返回1个字节数据
bis.skip(4);//移动3个指针位
bis.mark(0);//做标记,
您可能关注的文档
最近下载
- 除颤仪迈瑞D3说明书 .pdf VIP
- 电梯结构及原理 第9章 自动扶梯、自动人行道.ppt VIP
- 通信基础知识课件.ppt VIP
- 人教版数学七年级上册开学第一课课件.pptx VIP
- 亲子关系量表-pianta编制-张晓,陈会昌修订.docx VIP
- 贵州省丹寨汞矿四相厂历史遗留汞渣污染综合治理工程环评报告.docx VIP
- 八师兵团职工考试题库及答案.doc
- (正式版)B 6222-2005 工业企业煤气安全规程.docx VIP
- Panasonic松下滚筒式热泵干衣机NH-LH1023D NH-VH1025P NH-LHJ02YD NH-VH10B5P NH-LH10B3D NH-VH102FP NH-LHM02Y2 用户手册.pdf
- 孕妇学校健康教育宣教.pptx VIP
文档评论(0)