黑马程序员之IO

 

---------------------- android培训java培训、期待与您交流! ----------------------

InputStream  :
java 用InputStream 来描述所有输入流的抽象概念
方法 :
read() 从输入流读取一个字节的内容,如果读到结束则返回-1 ,如果没有数据可读,又不是读到结尾处。那么这个read就会阻塞
read方法将读取的每一个字节复制到int类型(int类型占用4个字节)中的最低字节,其他高字节的部份全部设置为零. 无参这个方法它返回的是字节的内容的整形形式

int read(byte[]b)  返回值表示实际上读取了多少个字节。如果一个字节都读不到,这个方法也会阻塞      

int read(byte[]b,int off,int len)  从off 开始读len 个字节,存放在b中

long ship(long n) 跳过输入流中的n个字节 ,开始读。用在包装类的函数

int available()  返回当前输入流中可读的字节数 检查流中有多少个数据 。

void mark(int readlimit) 建立一个标记 ,从建立标识的位置开始最多还有多少个字节可以读用在包装类的方法

void reset()   让指针会到以前标记的

boolean markSupported() 判断这个流是否可以使用mark 和reset

void close() 关闭流

一个对象在没有引用变量指向它的时候,就会变成垃圾,垃圾回收器,就会把它回收


OutputStream :

 来描述所有输出流的抽象概念

void write(int b)

void write(byte[]b)  它内部调用了flush()
void write(byte[]b ,int off,int len)

void flush()  把缓冲区的数据清空,并输出到IO设备上
              在 ,即使缓冲区没有被填满,也可以强制写到外部设备

void close()

FileInputStream 和FileOutputStream 类分别用来创建磁盘文件的输入流和输出流对象,通过它们的构造函数来指定文件路径和文件名,

创建FileInputStream实例对象时,指定的文件应当是存在和可读的,创建FileOutputStream实例对象时,如果指定的文件已经存在,盖文件的原来内容被覆盖删除。

创建FileOutputStream 可以指定不存在的文件名,不能指定被其他程序打开了文件


Reader 和 Writer 是所有字符流类的抽象基类,用于简化对字符串的输入输出编程

文件的每个文件都是二进制文件 ,文本文件是特殊的二进制文件,如果一个文件专用于存储文本字符,叫文本文件,其他的叫二进制文件。

用FileWriter 类向文件中写入一个字符串,用FileReader 类向文件读取一个字符串
FileWriter 的 Writer方法时,一定要close掉,不然,他不会写到文件。

PipedStream 管道流

ByteArrayInputStream ByteArrayOutputStream 用于对字节数组内容的读写,char类型可以自动转换成int,int需要强制转换成char

不可以直接new InputStream 因为他是一个抽象类

Sytem.in 连接到键盘 ,out 连接到显示器 碉堡啦

charAt()取出每一个字符  toHexString() 转换为16进制

getBytes() 可以指定编码集,如果不指定就是计算机默认的

 System.getProperties().list(System.out);  确定当前的系统属性

修改默认的字符集: System.setProperties();  System.setProperties().put();

编码和解码不是可逆的

缓冲流为I/O流增加了内存缓冲区,增加缓冲区有两个基本作用:

1 允许Java程序一次不只操作一个字节,这样提高了程序的性能
2 由于有了缓冲区,使得在流上执行skip,mark和reset方法都成为了可能

PrintWriter 类不会自动清空缓冲区

---------------------- android培训java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值