2021-08-03

2020-8-3

学习目标:

今天主要把io流的相关内容看完。

学习内容:

File类的综合案例使用

使用file类的方法实现了文件夹内文件的搜索和目标文件的打印

public static void getFile(File dir) {
        File[] files = dir.listFiles();   //获取子目录下的名称
        for (File file1 : files) {
            if(file1.isDirectory()){       //如果是文件夹进行递归
                getFile(file1);
            }
            if(file1.isFile()){                // 如果是文件判断是不是以“.java结尾”,是的话输出。
                if(file1.getName().endsWith(".java")){
                    System.out.println(file1.getName());
                }
            }
        }
    }
文件的复制
  • 根据字节流复制
     FileInputStream fis =new FileInputStream("a.jpg");
         FileOutputStream fos =new FileOutputStream("b.jpg");
         byte [] bytes = new byte[10];  // 每次读的内容
         int len =0;  //每次读取的有效个数
         while ((len=fis.read(bytes))!=-1){
             fos.write(bytes,0,len);
         }
         fos.close();   // 先关闭写的,再关闭读的
         fis.close();
    
  • 根据字节流(可以复制中文)
 FileReader fr =new FileReader("a.txt");
       FileWriter fw =new FileWriter("b.txt");
       char [] chars =new char[10];
       while ((len= fr.read(chars))!=-1){
           fw.write(chars,0,len);
           System.out.println(new String(chars));
       }
       fw.flush();    //不刷新不会出来
       fw.close();
       fr.close();
序列化和反序列化

序列化是把对象以流的方式写入到文件中保存。ObjectOutStream:对象的序列化流
反序列化是把文件中保存的对象以流的形式读取出来。ObjectInputStream:对象的反序列化流

User user =new User("张三",18);      //User类需要实现Serializable接口,标明序列化相关
      ObjectOutputStream oop =new ObjectOutputStream(new FileOutputStream("a.txt"));
      oop.writeObject(user);                // 写入到a.txt;
      oop.flush();
      oop.close();
      ObjectInputStream oip = new ObjectInputStream(new FileInputStream("a.txt"));
      User o = (User)oip.readObject();      //读取类并强转
      System.out.println(o);
      oip.close();

学习时间:

晚上9.23-晚上12.00

学习产出:

今天晚上学习了IO流的相关内容,包括file类的基本方法,字节流:FileInputStreamFileOutputStream,字符流: FileReader和FileWriter。带缓冲的字节流BufferedInputStreamBufferedOutputStream,带缓冲的字符流BufferedReader和BufferedWriter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值