java IO流

IO流作用:用来处理设备间的数据传输。

                  Java对数据的操作是通过流的方式。

流按操作类型分为两种:

                                   *  字节流:可操作任何类型的数据,因为在计算机中任何类型的数据都是以字节形式存储的。

                                   *  字符流:只能操作纯字符数据,比较方便。

字节流抽象父类:InputStream    OutputStream

字符流抽象父类:Reader             Writer

                           

                    FileInputStream类:InputStream子类。

                                                     int read():从该输入流中读取一个字节的数据,每次读取指针向后移。

                 *(面试):read()方法读的是一个字节,为什么返回的却是int 类型而不是byte类型呢?

                                  字节输入流可操作任意类型的数据,对于音频,图片,视频等类型的文件底层都是以二进制数据存储的。如果返回的是byte类型,有可能在读到中间时遇到                                              11111111。这就是byte类型的-1,然而程序在读到-1时就结束读取了。后面的数据就没有读取到。所以读取时用int类型接收。

                                                    int available():返回一个文件的所有字节数。

                                                    int read(byte []arr) :每次最多能读取arr数组长度的字节数。

                     FileOutputStream:OutputStream子类。

                                                  void  write(int b):将指定字节写入文件输出流中。虽然写入的是一个int数,但最终到文件上的是一个字节。会自动去掉前三个8位。

                                               FileOutputStream在创建对象的时候,所关联的文件如果没有会自动创建。

                                              构造方法: FileOutputStream(String name,boolean bol) 如果想要在文件中续写内容而不是覆盖文件之前的内容,第二个参数就设置为true.

            

                 字符流可拷贝文件,但不推荐使用。因为在读取时会把字节流转换为字符流。在写出时把字符流又转换为字节流。

                字符流不能拷贝非纯文本文件,因为在转换过程中有可能找不到对应的码表值。

 

                  

                 

转载于:https://www.cnblogs.com/abel111/p/9478494.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值