IO

IO:

I: input 相对于程序输入
O: output 相对于程序输出
IO流的分类:
 字符流(只能操作文本文件) 必須刷新关流
普通字符流: Reader–>FileReader read()
          Wrietr-->FileWriter writer()
          缓冲流:   BufferedReader readline()
                     BufferedWriter newline()
字节流(可以操作任何类型的文件) 不用刷新
          普通字节流(不用刷新):InputStream--->FileInputStream()
                               OutputStream---->FileOutputStream()
          高效字节流(必须刷新): BufferedInputStream()
                              BufferedOutputStream()
FileOutputStream
 成员方法:public void write(int b)
           Public void write(byte[] b)
           Public void write(byte[] b,int off,int len)
 构造方法:(如果文件不存在则创建文件 如果文件存在则清空文件)
           FileOutPutStream(String “文件路径”)
           FileOutPutStream(File f)
           FileOutPutStream(File f, boolean b)
       Public byte[] getBytes()  //将字符串转为字符数组
FileInputStream
成员方法:
 Public int read() //读取一个字节
 Public int read(byte[] bytes) //读取一个字节数组 返回值表示实际读取的字节长度

在GBK编码中 一个汉字在文件中占两个字节
New String(bytes,0,len) getByte()
字节数组——————————>字符串———————–>字节数组

BufferedInputStream(new FileInputStream(“ ”))
BufferedOutputStream(new FileInputStream(“ ” ))

转换流

字节流转为字符流
必须要刷新 关流

OutputStreamWrite:字节输出流转为字符输出流
构造方法:OutPutStreamWrite(OutputStream out)       
        OutputStreamWrite(OutputStream out,String charsename)//指定编码类型写入
InputStreamRead:字节输入流转换为字符输入流
 构造方法:InputStreamRead(InputStream in)
     InputStreamRead(InputStrean in,String charsetName)
转换流的作用:

1.调用方法时传入的是字符流而只有字节流的时候需要转换为字符流传入
2.解决文件的编码问题 写入时编码类型必须与读取时编码类型一直

对象的序列化 ObjectOutPutStream

将一个对象写入文件,实际是将该对象堆内存中所有二进制数据写入文件(会看不懂)
不刷新,必须关流
如果让一个类的对象实现序列化,则:

  1该类要实现接口Seralizable(该接口没有抽象方法称为标记接口)当类有组合关系时 所有有关系的类都要实现该接口
  2添加SerializableID
构造方法:ObjectOutputStream(OutputStream out)
成员方法:writeObject(Object obj)

对象的反序列化 ObjectInputStream

从文件中读取对象
反序列化没有能力判断文件末尾
类的成员变量不打算被序列化则在变量类型前加上transient 则打印的就是默认值

构造方法:ObjectInputStream(InputStream in)
成员方法:Object readObject()

作用:实现了多个模块共享一个对象用于网络之间的对象传输

Properties类:

无序 元素唯一性 实现了Map接口 只用来存字符串

方法:
SetProperties(String key,String value);
getProperties(Key)
stringPropertiesNames()
Lode(new FileInputStream(“ ”))//读取文件中的信息存入集合
Lode(new FileReader(“ ”))
Store(new FileWriter(“ ”))//将类中的数据写入文件
Lode(new FileOutputStream(“ ”))               
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值