关于字节流,字符流,转换流的详解

本文详细介绍了Java中的字节流和字符流,包括它们的区别、操作流程。字节流适用于处理各种类型的资源,而字符流主要用于处理文本。还讨论了字节输出流和输入流的核心方法,并阐述了字符流的特点,如Writer支持字符串直接输出。此外,转换流的作用在于将字节流转换为字符流,例如OutputStreamWriter和InputStreamReader。
摘要由CSDN通过智能技术生成

1. 流的分类
在java.io包中流分为两类:
字节流(byte):
InputStream    OutputStream
字符流(char):
Reader    Writer
从下面的图我们来看看字节流与字符流的区别:
在这里插入图片描述
在这里插入图片描述
字节流与字符流的区别:
字节流是原生操作无需转换,字符流是处理后的操作。
字节流可以处理文本文件、图像、音乐、视频等资源
一般使用字节流(无论是网络传输还是磁盘数据保存均以字节为单位)
只有处理中文文本时才会用到字符流。
2. 流操作流程
无论是字节流还是字符流,操作流程几乎一样
1.取得终端对象
2.根据终端对象取得输入输出流
3.根据输入输出流进行数据读取与写入
4.关闭流
IO操作属于资源处理,所有的资源操作在使用后一定要关闭
3. 字节输出流
字节输出流有三个核心输出方法:

  1. 将指定的字节数组全部输出
    public void write(byte[ ] b) throws IOException;
  2. 将部分字节数组输出
    public void write(byte[ ] b,int offset, int len) throws IOException
  3. 输出单个字节
    public abstract void write(int b) throws IOException;

在IO操作这里,要想使用某个终端,这个终端一定有一个类实现了Outputstream这个类(Outputstream是抽象类)。

  1. 文件内容覆盖
    public FileOutputStream(File file) throws FilenotFoundException
  2. 文件内容追加(boolean返回是否允许追加文件内容)
    public FileOutputStream(File file, boolean append)
    当使用FileOutputStream进行文件输出时,只要文件的父路径存在,FileOutputStream会自动创建文件。

看一个例子:

public class IO1{
   
    public static void main(String[] args) {
   
        //1.取得终端对象
        File file = new File("C"+File.separator+"Users"+File.separator+"Administrator"
                +File.separator+"Desktop"+File.separator+"Test.txt"); //在桌面创建Test.txt的文件夹
        if(!file.exists()){
   
            try {
   
                file.createNewFile();
            } catch (IOException e) {
   
                e.printStackTrace();
            }
        }
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值