Java 各个I/O流的使用步骤
1.FileInputStream,FileOutputStream
    File file = new File(" 文件路径");
    FileInputStream fis = new FileInputStream(file);
    FileOutputStream fos = new FileOutputStream("文件位置");
    byte[] buffer = new byte[1024];
    int len;
    while((len = fis.read(buffer)) ! = -1){
    fos.write(buffer,0,len);
    }
    fis.close();
    fos.close();
    产生异常try-catch处理,关闭操作放在finally中
2.FileReader,FileWriter与上基本一致,只需把byte[]数组改为char[];FileWriter如果文件不存在则创建文件,如果文件存在就完全覆盖文件,如果文件存在且想在文件末尾写入数据,则使用new FileWriter(file,true),默认第二个参数为false即完全覆盖

3.BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter
    File file = new File(" 文件路径");
    FileInputStream fis = new FileInputStream(file);
    FileOutputStream fos = new FileOutputStream("文件位置");
    BufferedInputStream bis = new BufferedInputStream(fis);
    BufferedOutputStream bos = new BufferedOutputStream(fos);
    byte[] buffer = new byte[1024];
    int len;
    while((len = bis.read(buffer)) ! = -1){
    bos.write(buffer,0,len);
    }
    bis.close();
    bos.close();
    fis,fos会随着bis,bos的关闭而关闭
    BufferedReader与BufferedWriter用法与上基本一致
4.InputStreamReader,OutputStreamWriter
    InputStreamReader将输入的字节流转换为字符流输入,可读入到char[]中
    OutputStreamWriter将字符流转换为字节流输出
5.RandomAccessFile
    不区分输入输出,new RandomAccessFile(file,"r/rw/rwd/rws")来区分是只读还是可以写,有2个重要的方法,read(byte[] buffer) write(byte[] buffer,int offset,int length),seek(int pos)
    writer如果文件已经存在,则在文件开头(索引从0开始)写入数据
6.ObjectInputStream(反序列化),ObjectOutputStream(序列化)
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("xxx.dat"));
    oos.writeObject(Object obj);
    oos.flush();
    oos.close();
    异常处理不再赘述
    以上是序列化过程
    ObjectInputStream ois = new ObjectInputStream(new FileInputStream("xxxx"));
    Object obj = ois.readObject();
    ois.close();
    以上是反序列化过程
    注意:只有实现了Serializable接口的类才能被序列化(该类的父类也必须实现并且有serialVerison),且该类中一定要有一条语句 public/private static final long serialVersion = xxxxxxL,有此条语句后,如果序列化之后类发生了改变,在反序列时仍然能找到该类。同时,该类中的属性一定要是可序列化的(基本数据类型默认可序列化),属性不能被static或transient修饰,否则无法将该属性序列化,但不会报错。

 
    
#Java#

注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像 头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
1 18 评论
分享

全站热榜

正在热议