A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Lee0

初级黑马

  • 黑马币:38

  • 帖子:17

  • 精华:0

本帖最后由 Lee0 于 2017-11-29 18:17 编辑

IO流:用于设备之间的数据传输

关于IO流的分类:
     按照流向分为输出流和输入流;
     按照数据类型分为字符流和字节流;

下面为我总结的IO流的大体知识结构
        字符流:(只能操作纯文本文件)
                输入流:Reader
                              FileReader  构造方法:file对象、String 字符串文件名
                              BufferedReader 构造方法:reader对象
                                               高效流,可以一次读取一行
                              InputStreamReader 构造方法:InputStream对象
                                               转换流,字节流通向字符流的桥梁
                                               通过构造方法可以使用指定编码集进行转换                                               (InputStreamReader(InputStream in, String charsetName))
                 输出流:Writer
                              FileWriter 构造方法:file对象(,true)、String类型文件名(,true)
                                               如果文件需要追加写入,可以通过构造方法后面加true来实现
                              BufferedWriter 构造方法:writer对象
                                               高效流,特有方法:newLine()方法 换行 与系统无关
                              OutputStreamWriter 构造方法:outputStream对象
                                               转换流,字符流通向字节流的桥梁
                                               通过构造方法可以使用指定编码集进行转换
                                              (OutputStreamWriter(OutputStream out, String charsetName))
                             PrintWriter 构造方法:file对象、outputStream对象(,true)、String文件名、writer对象(,true)
                                                打印流,构造方法传字符流或字节流对象后加true可以实现自动刷新
                                                可自动刷新的方法有println()、printf()、format()
                                                Println()方法可以自动换行 与系统无关
        字节流:(可以拷贝任何类型的文件)
                输入流:InputStream
                              FileInputStream 构造方法:file对象、String文件名
                              ObjectInputStream构造方法:InputStream对象
                                                对象流,反序列化流, 可以从文件中读取对象 使用方法 Obejct readObject()
                                                使用自定义类时,需实现序列化接口(Serializable接口) 才能从文件中读取
                                                注意:若要类无论如何修改都能正常进行序列化与反序列化,必须生成序列号。
                                                          一定是先序列化,才能进行反序列化。(先写才能读)
                               Static InputStream in     
                                                标准输入流  System.in
                输出流:OutputStream
                                FileOutputStream 构造方法:file对象(,true)、String文件名(,true)
                                                  如果文件需要追加写入,可以通过构造方法后面加true来实现
                                ObjectOutputStream 构造方法:OuputStream对象
                                                   对象流,序列化流, 将对象写入文件 使用方法:void writerObject(object)
                                                   使用自定义类时,需实现序列化接口(Serializable接口) 才能从文件中读取
                                PrintStream 构造方法 file对象、outputStream对象(,true)、String文件名(,true)
                                                   打印流,构造方法传字符流或字节流对象后加true可以实现自动刷新
                                                   可自动刷新的方法有println()、printf()、format()
                                                   Println()方法可以自动换行 与系统无关
                                Static PrintStream out
                                                   标准输出流。  System.out
当使用IO流的时候可以先进行判断再决定使用哪个流:
1.考虑是输入还是输出?
2.传输的数据为什么格式?文本还是其他数据
3.是否需要使用转换流?字符转字节或者字节转字符
4.是否需要用高效流?一次读取一行



应该懂得这样一个道理:要努力,努力,再努力;如果开始不成功,还要努力,努力,再努力。 —— 威·希克森









点评

io流的重点基础,总结的很到位,可以直接当笔记使用了  发表于 2017-12-2 23:57

39 个回复

正序浏览
看完这篇帖子,让我对java中IO流的操作和使用更加熟悉了,很好
回复 使用道具 举报
pyx0812 来自手机 初级黑马 2017-12-5 13:17:00
38#
简介明了,又复习了一次,IO老是用不好,下次不会可以来这里查查了。
回复 使用道具 举报
nighhr 来自手机 初级黑马 2017-12-5 11:11:34
37#
有没有xml和dom4j的相关总结 求更新啊
回复 使用道具 举报
受教了  总结的好
回复 使用道具 举报
问题很大。IO的核心设计思想是适配者模式和装饰模式。基本流是inputStream和outputStream,根据输入输出对象不同又分为文本输入输出(可用字符输出流和字节输出流),对象输入输出(ObjectputStream),图像,视频等(只能用字节输出流),这是采用适配者模式。根据需求不同,可采用bufferinputStream,建立缓冲区,每次存取额定大小的数据,可用printwrit,自动解析数据流,这是装饰模式。
回复 使用道具 举报
demo_jean 发表于 2017-12-2 19:47
io总结的还不错。

问题很大。IO的核心设计思想是适配者模式和装饰模式。基本流是inputStream和outputStream,根据输入输出对象不同又分为文本输入输出(可用字符输出流和字节输出流),对象输入输出(ObjectputStream),图像,视频等(只能用字节输出流),这是采用适配者模式。根据需求不同,可采用bufferinputStream,建立缓冲区,每次存取额定大小的数据,可用printwrit,自动解析数据流,这是装饰模式。
回复 使用道具 举报
又学到了
回复 使用道具 举报
io流的重点基础,总结的很到位,可以直接当笔记使用了
回复 使用道具 举报
小鹿哥 来自手机 初级黑马 2017-12-2 23:53:06
31#
IO流在基础班是属于重要知识点了,感谢老铁总结的知识点,又学习了一遍!
回复 使用道具 举报
  感觉这应该算是基础班的重点了 解释的很棒  有些不用都忘了 记得比较杂乱  基础功还是不深啊
回复 使用道具 举报
总结的非常好,对我的学习很有帮助! 加油!!
回复 使用道具 举报
总结的很到位,全都是课上讲过的,过了一段时间再看也容易理解,排版也清晰,一看就知道哪个是哪个。总体来说做的很用心,我看完之后印象又加深了一些,给你个赞!
回复 使用道具 举报
一看耳目一新,优秀自然有优秀的道理,好记性不如烂笔头,好好记笔记,多回顾,向优秀学习
回复 使用道具 举报
爱奋斗的桃花侠 来自手机 初级黑马 2017-12-2 21:19:54
26#
还有object,可以传直接传集合入文件,不过用properties配置文件好用
回复 使用道具 举报
挺全面的,相当于又重新学习一遍。
回复 使用道具 举报
文本详细,易懂。收益匪浅
回复 使用道具 举报
详细 易懂
回复 使用道具 举报
段位详细,容易理解 棒棒的
回复 使用道具 举报
Lust 初级黑马 2017-12-2 19:55:30
21#
文本整洁,内容详细,可用来课前预习,课后复习,生疏时温习,每次阅读,都有收益,赞一个!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马