日期:2014-05-20  浏览次数:20797 次

求教IO流的学习侧重点
这几天学IO,发现学的乱七八糟的,主要看的是李兴华的教学视频,教得不错,但是也有很多问题,特别是教了很多种类,却不知哪种才是常用的
创建文件和查看文件夹到没啥
RandomAccessFile这个有必要看么?只能传输12位而且往txt里写数字的时候总会乱码.
OutputStream和InputStream按照Byte传输,好像很多读入和输出都是这么来的,如此麻烦的操作会在什么时候用呢?我看FileWriter和PrintWriter都可以直接将String输出到txt,却没看到能直接读入将txt内容一起读入的方法.
InputStreamReader(System.in)应该是用来从控制台输入的,那么这和Scanner有啥区别?
学的不多,有些概念模糊,表达不清楚请见谅.

------解决方案--------------------
学习流,首先要有层次感
比如InputStream,OutputStream,Reader,Writer。四个抽象类是整个流的基础。
其余的类分别依次继承他们。
搞清继承关系,搞清各个流的用途,将他们系统的总结下。你会有很大进步的。

------解决方案--------------------
把类分清楚最重要,
字节流
字符流
装饰流
————————————————————
1、RamdomAccessFile本质上是字节流,txt文件是字符,两者是不同的。IO流重要的一点就是怎么写入就怎么拿出来。你以字节的形式写入,应该以字节的形式读出,才能还原数据。
2、OutputSteam和InputStream比Writer和Reader有用的地方太多了,比如网络通信、对象序列化等。
3、Writer类把字符串写出,实际上就是把内存的一部分写出,相当于把缓冲写出,Reader也有把流的一部分读入内存的read()方法。
4、InputStreamReader(System.in)这个把in这个字节流装饰为字符流,可以从控制台读入一些字符。Scanner(System.in)是用正则把控制台的输入释义为int ,double等基本类型的数据,当然也可以读入字符串。比较而言,Scanner类更方便,更实用。
------解决方案--------------------
自己做个sample程序,其中把各种流的类都使用一遍不就知道了。测试用的文件,可能用图片等文件,这样可以通过input流读入,再用output流读出,这样源文件和输出文件对比一下,不就行了。
------解决方案--------------------
多使用就用体会了。
------解决方案--------------------
探讨
把类分清楚最重要,
字节流
字符流
装饰流
————————————————————
1、RamdomAccessFile本质上是字节流,txt文件是字符,两者是不同的。IO流重要的一点就是怎么写入就怎么拿出来。你以字节的形式写入,应该以字节的形式读出,才能还原数据。
2、OutputSteam和InputStream比Writer和Reader有用的地方太多了,比如网络通信、对象序列化等。
3、Writer类把字符串写出,实际上就是把内存的一部分写出,相当于把缓冲写出,Reader也有把流的一部分读入内存的read()方法。
4、InputStreamReader(System.in)这个把in这个字节流装饰为字符流,可以从控制台读入一些字符。Scanner(System.in)是用正则把控制台的输入释义为int ,double等基本类型的数据,当然也可以读入字符串。比较而言,Scanner类更方便,更实用。

------解决方案--------------------
要弄清楚 所有IO的传输最底层的部分都是靠字节流进行传输
分3种:字节流,字符流,对象流。。

------解决方案--------------------
分清后多看看实例
都是定死了的东西,主要是看什么情况下用什么效率高
------解决方案--------------------
李兴华!!!有没有搞错,他那叫哪门子教学,说话跟打机枪一样,完全不给你思考时间,自己叭叭的打代码,然后打字。我跟你说,听他的课还不如自己看书来的明白。
他是我见过最差的讲师!!!不要看他的视频。去看看马士兵的吧
------解决方案--------------------
的确感觉把时间都浪费在打字上...只不过他打字速度挺快的
------解决方案--------------------
InputStream,OutputStream,Reader,Writer 这四个不用说了
然后在前面加上FILE,就可以读取文件了,自己写个例子,(网络上找,到处是),先解决读取文件的IO流,多做几个例子.然后用SERVLET,上传一个就会更清晰了.