Java的IO编程学习

一、相关概念

: 流向,从一端到另一端,是一个动态的、抽象的概念,是一串连续动态的数据集合。
数据: 提供数据的原始媒介,如数据库、文件等。
在Java中,对于数据的输入输出以流的方式进行的。jdk中封装了各种各样的关于流的类,在java.io包中。

java中重要的关于流的类和接口

说明
File文件类
InputStream字节输入流
OutputStream字节输出流
Reader字符输入流
Writer字符输出流
Closeable关闭流接口
Flushable刷新流接口
Serializable序列化接口

流分类

方向:

  • 输入流:数据源到程序。
  • 输出流:程序到目的地。

数据:

  • 字节流:按照字节读取数据。
  • 字符流:按照字符读取数据,其底层还是基于字节流操作,自动搜寻了指定的码 表。

功能:

  • 节点流:可以直接从数据源或目的地读写数据。
  • 包装流:不直接连接到数据源或目的地,是其他流进行封装。目的主要是简化操作和提高性能。

FileInputStream和FileOutputStream使用

  • FileInputStream:通过字节的方式读取文件,适合读取所有类型的文件(图像、视频等).
  • FileOutputStream: 通过字节的方式写出或追加数据到文件,适合所有类型的文件(图像、视频等).
图片的复制

这里拿我女神的照片练习IO?

FileInputStream fis = null;
        FileOutputStream fos = null;

        File file = new File("F:\\Code\\IDEA\\IO\\img\\a.jpg");
        try {
            fis = new FileInputStream(file);
            fos = new FileOutputStream(new File("F:\\Code\\IDEA\\IO\\img\\b.jpg"));
            byte[] b = new byte[1024];
            int i = -1;
            while((i = fis.read(b)) != -1){
                fos.write(b);
            }
            fos.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

            try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
                }

        }

FileReader和FileWrite使用

  • FileReader:通过字符的方式读取文件,仅适合字符文件.
  • FileWrite:通过字节的方式写出或追加数据到文件中,仅适合字符文件.
文件复制
 FileReader fr = null;
        FileWriter fw = null;

        try {
            fr = new FileReader(new File("F:\\Code\\IDEA\\IO\\text\\a.text"));
            fw = new FileWriter(new File("F:\\Code\\IDEA\\IO\\text\\b.text"));
            int i = -1;
            while((i = fr.read()) != -1) {
                fw.write(i);
            }
            fw.flush();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

            try {
                fr.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值