28. Java IO操作(02)-字节流:InputStream、OutputStream和字符流:Reader、Writer

上传人:大米 文档编号:486196102 上传时间:2023-05-08 格式:DOCX 页数:10 大小:980.78KB
返回 下载 相关 举报
28. Java IO操作(02)-字节流:InputStream、OutputStream和字符流:Reader、Writer_第1页
第1页 / 共10页
28. Java IO操作(02)-字节流:InputStream、OutputStream和字符流:Reader、Writer_第2页
第2页 / 共10页
28. Java IO操作(02)-字节流:InputStream、OutputStream和字符流:Reader、Writer_第3页
第3页 / 共10页
28. Java IO操作(02)-字节流:InputStream、OutputStream和字符流:Reader、Writer_第4页
第4页 / 共10页
28. Java IO操作(02)-字节流:InputStream、OutputStream和字符流:Reader、Writer_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《28. Java IO操作(02)-字节流:InputStream、OutputStream和字符流:Reader、Writer》由会员分享,可在线阅读,更多相关《28. Java IO操作(02)-字节流:InputStream、OutputStream和字符流:Reader、Writer(10页珍藏版)》请在金锄头文库上搜索。

1、28. Java IO操作(02) 本季知识点:字节流:InputStream、OutputStream和字符流:Reader、Writer。本季详细的讲解了JAVA中字节流与字符流的基本操作,实现了向文件中写入数据的功能,之后又讲解了字节流与字符流的区别。 blog: 零基础学JAVAJava SE应用部分-28.Java IO操作(02) 2009-02-25上季内容回顾:File类RandomAccessFile类- 文件读、写操作本季主要知识点:1、字节流:InputStream、OutputStream2、字符流:Reader、Writer字节流和字符流InputStream和Out

2、putStream为什么现在非要用子类去实例化InputStream和OutputStream呢?查JDK文档先完成向文件中写入数据:OutputStream定义:public abstract classOutputStreamextendsObjectimplementsCloseable,FlushableOutputStream是一个抽象类,如果是抽象类,则肯定要用其子类进行对象的实例化。如果要向文件中保存,则要使用FileOutputStream。就用这两个类完成向文件中写入一个字符串的目的。FileOutputStream构造方法: public FileOutputStream(

3、File file) throws FileNotFoundException:以File类的对象创建文件输出流 public FileOutputStream(File file,boolean append) throws FileNotFoundException:以File类的对象创建文件输出流,在最后的append参数表示的是是否在文件后面追加内容,默认是追加的。 public FileOutputStream(String name) throws FileNotFoundException:直接写入文件的路径,进行输出操作,实际上里面就自动包含了一个File类的对象,自动进行实例

4、化 public FileOutputStream(String name, boolean append) throws FileNotFoundException向输出流中写入内容:public void write(byte b) throws IOException现在要写入的内容是一个字符串,但是write方法接收的只能是一个byte数组,必须把字符串变为字符数组才可以。以上的程序为字节的输出流,因为最终结果都是把字符串变为了byte数组了。追加的时候就直接在后面写上一个控制的标记,内容为true:out = new FileOutputStream(f,true) ;看下效果:现在

5、我们灵活点哈由外部输入能否通过程序把在文件中的内容读进来呢?InputStream- 字节肯定是byte数组文件中的内容都是字节InputStream中的方法:把byte数组变为字符串就直接找String的构造方法。看下效果:因开辟byte1024空间,当读完文件中内容后剩余空间读不到数据就报错输出?符号。下面解决读取报错问题哈看下效果,现在出错的问号没有了,都换成空格了哈下面我们想办法将空格去掉哈定义一个计数,计算到底一共读了多少位看下效果:如果直接使用InputStream类中的read()方法读取,则必须一个一个读,当文件读到底(read的返回值为-1时就表示文件读到底),则退出循环,之

6、后用String把byte数组变为字符串输出。使用另外一个read方法,传入一个byte数组,之后由类自动把内容赋给byte数组。看下修改后的效果是否一样哈在字节流的操作中,可以发现一切都必须以byte数组为标准。字符流:直接支持字符的操作Reader、Writer使用Writer向文件中写入内容:看下效果有没写入数据哈与之前的OutputStream在使用上是非常相似的,只是现在可以直接操作字符串了。Reader的使用:关于OutputStream与Writer及InputStream与Reader到底有那些区别呢? 字节流是没有使用到缓冲区的,是直接操作文件的 字符流是使用到了缓冲区,所有

7、的内容要先放在缓冲区中,之后才能向文件中写入。OutputStream看下效果:文件流最后没有关闭,内容也依然可以输出现在把程序换成字符流,又会如何?发现如果不关闭,则内容是无法输出的,因为内容全部都在缓冲区中,之前是因为调用了close()方法,所以会自动把缓冲区给清空掉。可以直接使用强制性的把缓冲内容输出的操作完成。public abstract void flush() throws IOException看下效果:证明字节流不使用缓冲区,字符流使用到缓冲区总结练习题(下季讲解哈)掌握四个类的基本操作:InputStream、OutputStream、Reader、Writer,分别的四个文件的操作子类:FileXxx之类。#本文出自 “王乾De技术博客” 博客,谢绝转载!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号