Java之字节流和字符流

目录

一、IO概述

1、什么是IO

2、IO分类

3、IO的流向说明图解

二、字节流

1、字节输出流OutputStream

2、字节输入流InputStream

三、字符流

1、字符输入流Reader

2、字符输出流Writer

四、IO异常处理


一、IO概述

1、什么是IO

我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为 输入input 和 输出
output ,即流向内存是输入流,流出内存的输出流。
Java中I/O操作主要是指使用 java.io 包下的内容,进行输入、输出操作。输入也叫做读取数据,输出也叫做作写
出数据。

2、IO分类

3、IO的流向说明图解

二、字节流

1、字节输出流OutputStream

一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一
样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底
层传输的始终为二进制数据。

1)FileOutputStream

2)写出字节数据

3)数据追加续写

4)写出换行

2、字节输入流InputStream

FileInputStream类

字节流练习:图片复制

package com.dzg.stream.inputstream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Copy {

    public static void main(String[] args) throws IOException {
        //创建数据源对象
        //1指定源数据对象(输入流,将数据从硬盘写入到内存中)
        FileInputStream fis = new FileInputStream("G:demo.jpeg");
        //2、指定目标数据对象
        FileOutputStream fos = new FileOutputStream("copy_demo2.jpeg");
        /**
         * 3、读取字节流,一个字节一个字节的写入到目标文件中
         */

        byte[] bytes = new byte[1024];
        int read = fis.read(bytes);
        while( read != -1){
            fos.write(bytes,0,read);
            read = fis.read(bytes);
        }

        /**
         * 4、关闭资源,关闭原则:先开后关、后关先开
         */
        fos.close();
        fis.close();

    }
}

流关闭原则:先开后关、后关先开


三、字符流

1、字符输入流Reader

1)FileReader类

java.io.FileReader 类是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。

小贴士:
1. 字符编码:字节与字符的对应规则。Windows系统的中文编码默认是GBK编码表。
idea中UTF-8
2. 字节缓冲区:一个字节数组,用来临时存储字节数据。

 

2、字符输出流Writer

FileWriter类

四、IO异常处理

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值