java IO流

java IO流

IO流

IO,指的是Input和Output,即输入和输出。

流,从概念上来说是一个数据流,可以从流中读数据,也可以往流中写数据。在IO中流可以是字节流,也可以是字符流。

输入流,从数据源读取到程序中;输出流,从程序中写出到数据源中。

:输入/输出流是相对于我们的程序来说的,而不是数据源。

数据源

数据源,提供数据的原始媒介。

数据源分为,源设备和目标设备。

常用的数据源有:

  • 文件
  • 网络连接
  • 内存
  • 数据库

IO中四大抽象类

:抽象类不可以被实例化,需要通过他的子类来实现。

字节流抽象类

InputStream:是字节输入流的所有类的父类。

常用的方法有:

  • int read():读取一个字节的数据,返回值为-1,则代表结束。
  • void close():关闭输入流,释放资源。

OutputStream:是字节输出流的所有类的父类。

常用的方法有:

  • void write(int n):写入一个字节。
  • void close():关闭输入流,释放资源。
字符流抽象类

Reader:用于读取的字符流抽象类。

常用的方法有:

  • int read():读取一个字符的数据,返回值为-1,则代表结束。
  • void close():关闭输入流,释放资源。

Writer:用于输出的字符流抽象类。

常用的方法有:

  • void write(int n):写入一个字符。
  • void close():关闭输入流,释放资源。

IO的分类

按照数据的基本单位不同分为:字节流和字符流

按照数据的流向不同分为:输入流和输出流

如 👇:

字节流字符流
输入流InputStreamReader
输出流OutputStreamWriter

程序示例

  1. 使用字节流读取D盘中的图片并将其写出到C盘
public class Test01 {
    public static void main(String[] args) throws Exception{
        //创建字节输入流对象
        InputStream inputStream = new FileInputStream("D:\\savelearn\\pic\\1.jpg");
        //创建字节输出流对象
        OutputStream outputStream = new FileOutputStream("C:\\Users\\Lenovo\\Desktop\\test\\1.jpg");
        int read;

        while ((read=inputStream.read())!=-1){//读取文件直到结束
            outputStream.write(read);//写入文件
        }
        System.out.println("写入完毕!");
        //关闭流
        inputStream.close();
        outputStream.close();
    }
}
  1. 使用字符流读取D盘中的文本文件并将其写出到C盘
public class Test02 {
    public static void main(String[] args) throws Exception {
        //创建字符输入流对象
        Reader reader = new FileReader("D:\\savelearn\\pic\\1.txt");
        //创建字符输出流对象
        Writer writer = new FileWriter("C:\\Users\\Lenovo\\Desktop\\test\\1.txt");
        int read;
        //读取并且写入
        while ((read=reader.read())!=-1){
            writer.write(read);
        }
        //关闭数据流
        reader.close();
        writer.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿柒爱吃鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值