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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kjkjkjh 中级黑马   /  2015-12-16 23:59  /  1572 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

IO流:
        概述:使用来处理不同设备间的数据传输。
        IO用到的所有的类都在IO包下。

        分类:
                按照流向分:(操作的是内存 和 硬盘之间的数据,把你自己当做是内存)
                        输入流:读取文件。
                        输出流:写文件。
                       
                按照操作分:                //重点掌握
                        字节流:可以操作任何类型的数据
                                InputStream        字节输入流(读)
                                OutputStream 字节输出流(写)

                        字符流:只能操作纯中文的数据。
                                Reader        字符输入流
                                Writer        字符输出流
        步骤:                                //掌握
                使用前,导包,
                使用时,抛异常,
                使用后,释放资源。



**************************************************************************************************

字节流:可以操作任何类型的数据
        InputStream        字节输入流(读)
                FileInputStream
                        public int read();        //从数据源中读取数据,一次读一个字节,读不到就返回-1.                        //掌握
                        为什么方法的返回值是 int类型?                                                                                                                //理解
                                计算机底层存储数据都是以:数据的二进制补码形式来存,
                                当read()方法一次读一个字节,有可能读到“11111111”这样的字节(-1的补码)
                                这个时候,后边的数据就不读了,所以,我们在读数据的时候,给每个字节前边加上三个字节来读,
                                写的时候,再把前边加的三个字节给去掉就可以了。

                                简单记:防止中间读到“11111111”这样的数据,后边的内容就读取不了了。

                        public int read(byte[] bys);        //一次读一个字节数组,并将读到的有效字节数返回,如果没有数据返回-1        //掌握
                        public int available();                        //获取要读取的文件的 所有字节数


        OutputStream 字节输出流(写)
                FileOutputStream
                        构造方法:                        //掌握
                                FileOutputStream(String name);                //往指定文件中写内容,后续在写的话,会将之前的内容给覆盖掉
                                FileOutputStream(String name,boolean append);  //往指定文件中写内容,
                                                                                                //这个是追加,不会讲之前的内容覆盖掉,但是第二个参数要传true

                        public void write(int b);                //往目的地文件中 写内容         一次写一个字节                                                //掌握
                        public void write(byte[] bys);        //往目的地文件中 写内容,一次写一个固定长度的字节数组
                        public void write(byte[] bys,int index,int length);        //将读到的 有效字节数 写入到目的地文件中        //掌握

15 个回复

正序浏览
luoye111 来自手机 中级黑马 2015-12-22 00:57:21
16#
66666666666
回复 使用道具 举报
san_ss 中级黑马 2015-12-22 00:38:36
15#
楼主说的好哈。
回复 使用道具 举报
周翔 中级黑马 2015-12-21 22:38:15
14#
666666666666666666
回复 使用道具 举报
不错  赞一个
回复 使用道具 举报
可以可以 学习一下
回复 使用道具 举报
学习了,学习了。
回复 使用道具 举报
很棒啊!
回复 使用道具 举报
赞赞,顶一个
回复 使用道具 举报
littp 中级黑马 2015-12-20 13:00:07
8#
差点看成了 iOS。。。
回复 使用道具 举报
不错!很厉害!!!!
回复 使用道具 举报
加油。。。。。
回复 使用道具 举报
棒棒的,加油!!
回复 使用道具 举报
看不懂不懂oaoaoao
回复 使用道具 举报
加油!!!!!!!!!
回复 使用道具 举报
不错啊 棒棒的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马