字节流及字符流的API详解与Properries属性集

IO流:

根据数据的流向可以分为: 

输入流 Input:        从硬盘中的文件读取的数据到内存中的java程序

输出流 Output:     从内存中的java程序向硬盘写数据

根据操作的数据分为:

字节流:

        可以操作字节的流

        计算机上的一切数据都是由字节构成 所以字节流可以操作一切数据

字符流:

        可以操作字符的流,只能操作文本文件

作用:

        可以向硬盘中的文件写数据或者读取硬盘中的文件数据

字节输入流

        InputSrteam        所有字节输入流的超类 抽象类

方法:

int read() 读一个字节  一次读一个字节 返回值为读取的数据
int read(byte[] bytes) 读一个字节数组
int close() 关闭资源        IO流对象本身并不具备读写功能,需要调用操作系统的读写功能,

                                        读写完毕后,需要告知操作系统读取或者写入完成,否则操作系统会一直占用文件

                                        一般都是先开后关

        

        int返回值: 每次读取到的有效字节数

        bytes数组: 缓冲的作用  将读取的数据存放到字节数组

常用的实现类:

java.io.FileInputStream

构造方法                 绑定数据源
public FileInputStream(String path)
public FileInputStream(File file)

字节输出流

        OutputStream        所有字节输出流的超类  抽象类

方法:        

void        write(int  b)        写一个字节

void        write(byte[] bytes)        写一个字节数组

void        write(byte[]  bytes,int  start ,int  length)        写字节数组的一部分

void        Close()        关闭资源 

常用实现类:

java.io.FileOutputStream

        构造方法        绑定数据目的                b默认为false,如果写为true,则可以在文件上续写,不会覆盖

public FileOutputStream(String path,boolean b)        
public FileOutputStream(File file,boolean b)

\r\n  换行

如果没有指定的文件 创建一个新的空文件
如果指定的文件 已经存在  则 创建一个新文件 覆盖原来的文件
如果指定的路径不存在 则抛出 FileNotFoundException

字符输入流

        Reader          所有字符输入流的超类  抽象类 

方法:

int read()  一次读一个字符 返回的是读取到的字符  没有数据返回-1

int read(char[] chs) 一次读取一个字符数组  返回的是每次读取的有效字符数  没有数据返回-1

void close() 关闭资源 

常用实现类:

java.io.FileReader

    构造方法         绑定数据源
public FileReader(String path)
public FileReader(File File)

字符输出流

        Writer        所有字符输出流的超类   抽象类

方法:

write(int c) 写一个字符

write(char[] chs) 写一个字符数组

write(char[] chs,int start ,int length) 写字符数组的一部分

write(String str) 写字符串

flush() 刷新缓冲区

close() 关闭资源 并刷新一次       

注意:

字符输出流必须要刷新,如果不刷新,数据不进入数据目的

flush和close的区别

flush是刷新缓冲区 将数据从缓冲区中刷新到数据目的 刷新后就可以继续写数据

close是关闭资源,在关闭资源之前做一次刷新

Properties  属性集合

特点:

1.继承Hashtable  实现了Map接口,可以使用Map中的所有方法

2.没有泛型  键与值都是string

3.唯一一个可以与IO流直接结合使用的集合

方法:

String  setProperty(string key, string value)      添加键值对

String  getProperty(String key)        通过键取value

Set<string> stringPropertyNames()        获取set集合遍历

void  load(InputStream in)        将文件中的键值对加载到集合中

void load(Reader r)        将文件中的键值对加载到集合中

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值