黑马程序员技术交流社区

标题: 【哈尔滨校区】JAVA基础关于IO流的相关总结 [打印本页]

作者: Lee0    时间: 2017-11-29 17:54
标题: 【哈尔滨校区】JAVA基础关于IO流的相关总结
本帖最后由 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.是否需要用高效流?一次读取一行



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










作者: 张斯佳    时间: 2017-11-30 10:50
排班整洁,总结的也不错,继续努力
作者: 杨露露老师    时间: 2017-11-30 15:59
一看就是敲代码习惯了哈哈,不错。
作者: 黑马与你同在    时间: 2017-11-30 16:17
要努力,努力,再努力;如果开始不成功,还要努力,努力,再努力,这句话喜欢
作者: 呵呵哈哈256    时间: 2017-12-2 10:21
写的很好!很具体!!向你学习
作者: sxnacm    时间: 2017-12-2 10:22
很全面,开过了基础班还有进阶阶段的所有内容,对于我这种IO流比较薄弱的人来说还是很有帮助的!
简单明了,言简意赅!
作者: synchronize    时间: 2017-12-2 10:27
System.in一般不轻易关闭
作者: 董国洋_    时间: 2017-12-2 10:27
正好需要,很棒   手动比心!!!!!
作者: zhanzuhui    时间: 2017-12-2 10:28
IO流总结的很不错,既全面,又简洁
作者: 峨眉山吴彦祖    时间: 2017-12-2 10:29
认真的看过了这位同学写的代码,又一次帮我复习了一下io 流的知识,
真的不错, 总体内容很全面都是课上的重点.

作者: 刘昌昊    时间: 2017-12-2 12:54
总结的到位,最后使用哪个流的经验总结对我很有用处
作者: ycbin    时间: 2017-12-2 14:44
总结的挺好
作者: 恋爱不如敲代码    时间: 2017-12-2 17:23
刚好今天做作业就用到了 感谢老铁
作者: weiyipeng123456    时间: 2017-12-2 17:44
感谢谢你让我更深一层的记住IO流
作者: 学员123    时间: 2017-12-2 17:44
内容详细 工整美观
作者: 天敬沅    时间: 2017-12-2 18:23
非常详细的解释, 非常受益, 看好你!
作者: 看不见我    时间: 2017-12-2 18:31
正好io学得不好 总结的很全面   十分感谢
作者: 为学日益者    时间: 2017-12-2 19:17
总结到位,谢谢分享!!!
作者: 聆听者    时间: 2017-12-2 19:46
条理清晰,像记忆树一样,有主干,也有细枝末节,关联性这么好,谢谢腿哥,膜拜之后就是模仿了,嘿嘿get。
作者: demo_jean    时间: 2017-12-2 19:47
io总结的还不错。
作者: Lust    时间: 2017-12-2 19:55
文本整洁,内容详细,可用来课前预习,课后复习,生疏时温习,每次阅读,都有收益,赞一个!
作者: 13654406079    时间: 2017-12-2 20:51
段位详细,容易理解 棒棒的
作者: 13654406079    时间: 2017-12-2 20:52
详细 易懂
作者: 13654406079    时间: 2017-12-2 20:54
文本详细,易懂。收益匪浅
作者: 默契人生    时间: 2017-12-2 21:01
挺全面的,相当于又重新学习一遍。
作者: 爱奋斗的桃花侠    时间: 2017-12-2 21:19
还有object,可以传直接传集合入文件,不过用properties配置文件好用
作者: 敲代码---    时间: 2017-12-2 21:22
一看耳目一新,优秀自然有优秀的道理,好记性不如烂笔头,好好记笔记,多回顾,向优秀学习
作者: lin632854170    时间: 2017-12-2 21:31
总结的很到位,全都是课上讲过的,过了一段时间再看也容易理解,排版也清晰,一看就知道哪个是哪个。总体来说做的很用心,我看完之后印象又加深了一些,给你个赞!
作者: adonispeng    时间: 2017-12-2 21:43
总结的非常好,对我的学习很有帮助! 加油!!
作者: 黑胡子爷爷    时间: 2017-12-2 22:46
  感觉这应该算是基础班的重点了 解释的很棒  有些不用都忘了 记得比较杂乱  基础功还是不深啊
作者: 小鹿哥    时间: 2017-12-2 23:53
IO流在基础班是属于重要知识点了,感谢老铁总结的知识点,又学习了一遍!
作者: Vampire军哥    时间: 2017-12-2 23:58
io流的重点基础,总结的很到位,可以直接当笔记使用了
作者: 骑士冈布奥    时间: 2017-12-3 00:45
又学到了
作者: sunyiran    时间: 2017-12-3 10:30
demo_jean 发表于 2017-12-2 19:47
io总结的还不错。

问题很大。IO的核心设计思想是适配者模式和装饰模式。基本流是inputStream和outputStream,根据输入输出对象不同又分为文本输入输出(可用字符输出流和字节输出流),对象输入输出(ObjectputStream),图像,视频等(只能用字节输出流),这是采用适配者模式。根据需求不同,可采用bufferinputStream,建立缓冲区,每次存取额定大小的数据,可用printwrit,自动解析数据流,这是装饰模式。

作者: sunyiran    时间: 2017-12-3 10:31
问题很大。IO的核心设计思想是适配者模式和装饰模式。基本流是inputStream和outputStream,根据输入输出对象不同又分为文本输入输出(可用字符输出流和字节输出流),对象输入输出(ObjectputStream),图像,视频等(只能用字节输出流),这是采用适配者模式。根据需求不同,可采用bufferinputStream,建立缓冲区,每次存取额定大小的数据,可用printwrit,自动解析数据流,这是装饰模式。

作者: 15846125943    时间: 2017-12-5 10:48
受教了  总结的好
作者: nighhr    时间: 2017-12-5 11:11
有没有xml和dom4j的相关总结 求更新啊
作者: pyx0812    时间: 2017-12-5 13:17
简介明了,又复习了一次,IO老是用不好,下次不会可以来这里查查了。
作者: JavaDeveloper    时间: 2017-12-5 22:12
看完这篇帖子,让我对java中IO流的操作和使用更加熟悉了,很好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2