Java:IO流——字节流和字符流

2023-12-30 17:50:46

目录

IO流的基本概念

IO流体系结构

FileOutputStream字节输出流

构造方法

成员方法

细节

关流

FileInputStream字节输入流

构造方法及成员方法

read不带参数代码示例

read带参数代码示例?编辑

将字节数组或字符数组转成字符串

FileReader 字符输入流

构造方法和成员方法

成员方法代码示例(和字节输入流类似)

FileWriter字符输出流


IO流的基本概念

IO流中的I是input,指的是输入,又叫读取,当java程序需要读取数据库的数据时,可以开通一个输入流管道,让java程序和数据库建立关联

IO流中的O是output,指的是输出,又叫写出,当java程序需要向数据库中写入数据时,可以开通一个输出流管道,让java程序和数据库建立关联

OI流可用于数据传输

IO流体系结构

Java中的流对象大体分为两大类:字节流(万能流)和字符流

字节流可以操作任意类型的文件,但是操作纯文本文件的时候,可能会出现乱码问题。所以凡是纯文本文件,都用字符流

FileOutputStream字节输出流

构造方法

输出流关联文件,若文件不存在,会自动创建文件

成员方法

第三个方法中,第二个参数off表示从哪个位置开始写,第三个参数len表示写多少个

细节

? ? ? ? ? ? ? ? ? ? 输出流关联文件, 文件如果不存在: 会自动创建出来

? ? ? ? ? ? ? ? ? ? ?如果文件存在: 会清空现有的内容, 然后再进行写入操作,若想不清空文件内容直接追加,则需要将构造函数的第二个参数写为true(第二个参数默认值为false)

package com.itheima.stream.output;

import java.io.FileOutputStream;
import java.io.IOException;

public class FileOutputStreamDemo1 {
    /*
        字节流写出数据

            构造方法:
                    1. public FileOutputStream(String name) : 输出流关联文件, 文件路径以字符串形式给出
                    2. public FileOutputStream(File file) : 输出流关联文件, 文件路径以File对象形式给出

            成员方法:
                    public void write(int i) : 写出一个字节
                    public void write(byte[] bys) : 写出一个字节数组

            细节:
                    输出流关联文件, 文件如果不存在: 会自动创建出来
                                    如果文件存在: 会清空现有的内容, 然后再进行写入操作
     */
    public static void main(String[] args) throws IOException {
        // 创建字节输出流对象, 关联文件
        FileOutputStream fos = new FileOutputStream("D:\\A.txt", true); //true:追加,避免写入时清空文件

        byte[] bys = {97, 98, 99};

        // 写出数据
        fos.write(97);
        fos.write(98);
        fos.write(99);
        fos.write(bys);
        fos.write("你好你好".getBytes()); //字符串的getBytes方法可将字符串转换成字节数组
        fos.write(bys, 1, 2);
    }
}

关流

?在JDK7版本之前,标准关流操作需要用到普通的try-catch方法,语法繁琐,了解即可

JDK7版本之后

FileInputStream字节输入流

构造方法及成员方法

?

read不带参数代码示例

?

read带参数代码示例

将字节数组或字符数组转成字符串

FileReader 字符输入流

构造方法和成员方法

成员方法代码示例(和字节输入流类似)

?

FileWriter字符输出流

?

文章来源:https://blog.csdn.net/lbcbjtlhmjq/article/details/135291608
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。