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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李征 中级黑马   /  2013-6-1 00:17  /  1732 人查看  /  6 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李征 于 2013-6-1 09:27 编辑

    最近在学习IO流,发现IO流的体系是如此的庞大,首次接触的我在看完视频以后居然感觉有种有有余力不足的感觉,求论坛里的高手们分享一下IO流的学习方法,主要是思路,一般遇到问题是如何思考的,先怎么样再怎么样之类的,十分感谢

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

6 个回复

倒序浏览
确实如此 java的IO流有点复杂,我这有C++基础的都是直接走马而过的。准备第二遍时再好好研究。第一遍先大概看一下原理吧。等把java的基本语法和主要编程思想,功能等了解一下,再回头来解决复杂的问题,比如泛型,反射等。学习的时候拿个小本本自己画一个自己理解起来容易的图,完了把该记的都记下来,再然后上机写几个小例子上下手,再再然后就是拿着你的小本本24小时不离身,没事就回忆一下,想不起来立即查看

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
初学一个新的知识,总是感觉乱七八糟的,没有任何头绪,一个短短的视频看起来就很费劲儿,不想看,但是坚持看完,把代码敲了,笔记写了,第二天再看就感觉很清晰很简单了。
IO流中的类特别多,乍一看,很乱,但是是有规律的。
首先是四大基本抽象流:字节流:InputStream、OutputStream,字符流:Reader、Writer;输入流:InputStream、Reader,输出流:OutputStream、Writer;后面的所有流都是这四个的实现类;
文件流:FileInputStream、FileOutputStream,FileReader、FileWriter,文件流算是四大基本抽象流的最初级实现类,前面两个是字节流,可以用于任何格式文件的读写(因为文件的最基本存储形式就是字节数据),后面两个是字符流,只能用来处理文本文件;
缓冲流:字节流:BufferedInputStream、BufferedOutputStream,字符流:BufferedReader、BufferedWriter,这四个流用的是装饰设计模式,在使用时要接收其它的流对象,比如文件流;同文件流一样,前面两个流可用于任何类型的文件读写,后面两个流主要用于文本文件的读写,由于这四个流在建立对象后内部会自建缓冲区,所以读写的效率比较高,尤其是BufferedReader中的readLine()方法读取文本文件特别合适,可以整行整行的读取,遇到换行符算是一行的结束,但是它不会返回换行符,所以需要在调用write()方法后用newLine()方法新建换行符;
数据流:DataInputStream、DataOutputStream:用于基本类型数据的读写,采用装饰设计模式,构造方法的形参是流对象;

太晚了,顶不住了,未完待续…………
{:soso_e108:}

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
步骤:
A:明确数据源和目的地
        数据源:读取数据
                        Reader
                        InputStream
        目的地:写入数据
                        Writer
                        OutputStream

B:明确数据源和目的地是否是字符数据
        数据源:
                        是:
                                Reader
                        否:
                                InputStream
        目的地:
                        是:
                                Writer
                        否:
                                OutputStream
                               
C:明确设备
        数据源:
                        硬盘文件:
                                FileXxx
                        键盘录入:
                                System.in -- InputStream -- 转换流 -- InputStreamReader
                       
        目的地:
                        硬盘文件:
                                FileXxx
                        控制台输出:
                                System.out -- OutputStream -- 转换流 -- OutputStreamWriter
                       
D:是否高效
        是:就使用带Buffer的流对象
        否:不使用带Buffer的流对象
只要你把这个思路弄清楚了,数据源和目的源,问题就好做了,IO不是很难,难得是有很多方法,思路要清晰

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
感谢楼上的亲们,都是牛人呐
回复 使用道具 举报
多练习练习,多写代码就好了。
回复 使用道具 举报
遇到瓶颈来取取经
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马