IO流类总结

来源:互联网 发布:antplugins是什么软件 编辑:程序博客网 时间:2024/05/12 01:39

什么是流?

字节流简单来说就是对一个个文档内容处理

那么你们现在看一篇文章的内容可是大量文字,要是你们手机上的文字一个个显示,你们看得下去吗

肯定不能这么做

那么就会做个缓冲流,将一大段文字进行读取,放在内存,被随时调用

大家看电影是不是经常会发现,等待缓冲,就是说网站的内容被拷贝到本地电脑的临时文件夹收取,然后你们再去查看

那么缓冲流就是将大批的文件放入手机的手机卡

你们看文章看图片,看视频没什么问题的

那么字节流就不适合做这些了,缓冲流就很好了。所以需要套外流

所以手机卡需要大量的空间,否则你们就需要一段时间进行清理

 

字节流:

一、输出流

   1、OutputStream抽象类

   2、FileOutputStream字节输出流(直接接文件),假如文件不存在,会自动创建文件,但不会创建目录

   3、BufferedOutputStream字节缓冲输出流(接字节输出流)

   4、PrintStream打印流(功能和缓冲字节流一样,方法更多,更常用)

   5、DataOutputStream数据输出流(写基本数据类型+String)

6、ObjectOutputStream对象输出流(参数为缓冲流,类要实现序列化接口  7、ByteArrayOutputStream(写数据到内存中的数组里面)

  ****(文件类)8、RandomAccessFile随机读写文件(输入输出流,有指针,可直接接文件)要不停读写硬盘,效率极低

二、输入流

   1、InputStream抽象类

   2、FileInputStream字节输入流(直接接文件),文件不存在时会报异常

   3、BufferedInputStram字节缓冲输入流(接字节流)

   4、DataInputStream(数据输入流)

   5、ObjectInputStream对象输入流

   6、ByteArrayInputStream读内存中的数组

 

字符流:(抽象类:Reader/Writer)借助字符流读文本文件  不能读mp3或电影文件

一、输出流

   1、FileWriter文件字符输出流(直接接文件名)采用系统默认编码写数据

2、BufferedWriter缓冲字符输出流(参数是文件字节输出流),不建议使用

3、PrintWriter字符打印输出流(功能和缓冲字符输出流一样,但方法更多,后面也是接缓冲字符输出流)允许一次写一行,允许自动刷新

   4、OutputStreamWriter(转换流,字节转字符 参数第一个是字节缓冲输出流,第二个为编码方式)

二、输入流

   1、FileReader文件字符输入流(直接接文件名)采用系统默认编码读数据

   2、BufferedReader缓冲字符输入流  参数是字符输入流或转换流,允许一次读一行,带有缓冲区

   3、InputStreamReader转换流,字节转字符   第一个参数为字节缓冲流,第二个参数设置编码方式

4、StringReader:读字符串

IO流套接例子:

PrintStream ps = new PrintStream(newBufferedOutputStream(new FileOutputStream(file)))

DataOutputStream dos = newDataOutputStream(new BufferedOutputStream(new FileOutputStream(file))

PrintWriter pw = new PrintWriter(newOutputStreamWriter(new FileOutputStream(file,"utf-8"));

BufferedReader br = newBufferedReader(new InputStreamReader(newFileInputStream(file),"utf-8"));

 

最后总结:流的作用不是很明显,因为这是项目中的某个功能,比如上传下载,实际的运用就需要在项目中体现,如果可能会在WEB上作为一个功能实现

1 0
原创粉丝点击