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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kjkjkjh 中级黑马   /  2015-12-16 23:59  /  1541 人查看  /  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 个回复

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