Java 字节流和字符流 笔记


根据数据的流向分为: 输入流输出流

  • 输入流 :把数据从其他设备上读取到内存中的流。
  • 输出流 :把数据从内存 中写出到其他设备上的流。

格局数据的类型分为:字节流字符流

  • 字节流 :以字节为单位,读写数据的流。
  • 字符流 :以字符为单位,读写数据的流。

1 父类们

输入流 输出流
字节流 字节输入流
InputStream
字节输出流
OutputStream
字符流 字符输入流
Reader
字符输出流
Writer

2 文件字节输出流 FileOutputSteam

是OutputStream的子类
作用: 把内存中的数据写入到硬盘中的文件中

  • public FileOutputStream(File file):创建文件输出流以写入由指定的 File对象表示的文件。
  • public FileOutputStream(String name): 创建文件输出流以指定的名称写入文件。
  • 构造方法会根据参数的路径创建文件

使用步骤

  1. 创建一个FileOutputStream对象
  2. 调用对象中的Write方法,将数据写入到文件
  3. 释放资源

示例

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

public class IO5OutputStream {
    /*
    close()` :关闭此输出流并释放与此流相关联的任何系统资源。
    flush() ` :刷新此输出流并强制任何缓冲的输出字节被写出。
    write(byte[] b)`:将 b.length字节从指定的字节数组写入此输出流。
    write(byte[] b, int off, int len)` :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。


    outputStream的 子类 FileOutputStream  * 文件字节输出流
     */
    public static void main(String[] args) {
        try {
            FileOutputStream fos1 = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\a.txt");
            fos1.write(97);
            fos1.write(98);
            fos1.write(99);   //abc
            fos1.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            FileOutputStream fos2 = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\b.txt");
            byte[] bytes1 = {65,66,67,68,69};  //ABCDE
            fos2.write(bytes1);
            fos2.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            FileOutputStream fos3 = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\c.txt");
            byte[] bytes2 = {65,66,67,68,69,70,71,72,73};  //ABCDE
            fos3.write(bytes2,3,4); //第3个byte数组开始  写入4个字节  DEFG
            fos3.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            FileOutputStream fos4 = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\d.txt");
            String str = "大宝剑";  //一个中文占3个字节(UTF-8)
            byte[] bytes3 = str.getBytes();
            fos4.write(bytes3,3,6);
            fos4.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        

    }
}
发布了5 篇原创文章 · 获赞 3 · 访问量 393

猜你喜欢

转载自blog.csdn.net/qq_41930243/article/details/102518452