【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流

专栏【JavaSE】
喜欢的诗句:天行健,君子以自强不息。
音乐分享【如愿】
欢迎并且感谢大家指出小吉的问题

文章目录

  • 概述
  • 作用
  • 分类
  • 字节输出流的基本用法
    • FileOutputStream
      • ️‍一次写一个字节数据
      • ️‍一次写一个字节`数组`数据
      • ️‍一次写一个字节数组的`部分`数据
    • 写入数据,并且换行显示
  • 字节输入流的基本用法
    • FileInputStream
      • 文件拷贝
        • 一次读取一个字节
        • 一次读取多个字节

I/O(Input/Output)流是指计算机中用于输入和输出操作的数据流。在计算机编程中,I/O 流通常用于从外部设备(如硬盘、网络、键盘、显示器等)读取数据或将数据写入到外部设备中。

I/O 流可以分为输入流和输出流两种类型。输入流用于从外部设备中读取数据,而输出流用于将数据写入到外部设备中。

在许多编程语言中,都有对应的 I/O 流处理类库或模块,用于简化对文件、网络、标准输入输出等进行读写操作。

概述

存储和读取数据的解决方案
i:input o:output

作用

用于读写数据(本地文件,网络)

分类

按流的方向分类
【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第1张图片

输入流:程序 —> 文件
输出流:文件 —> 程序

按操作文件类型分类
【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第2张图片

什么是纯文本文件?
用Windows自带的记事本打开能读懂的文件

字节输出流的基本用法

FileOutputStream

操作本地文件的字节输出流,可以把程序中的数据写到本地文件中

️‍一次写一个字节数据

需求:把一段文字写到本地文件中
步骤:
	创建对象
	写出数据
	释放资源
-------------------------------------------------------
package IODemo1;

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

public class Demo1 {
    public static void main(String[] args) throws IOException {
        //创建对象
        //指定文件路径:进入本项目--->IOPractice--->a.txt(文件)
        FileOutputStream fileOutputStream=new FileOutputStream("E:\\IdeaProjects\\IOPractice\\a.txt");
        //写出数据
        fileOutputStream.write(97);
        //释放资源
        fileOutputStream.close();

    }
}

可能会报错,报错内容是 找不到相应的路径
【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第3张图片
⭐解决方法
补全路径即可
【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第4张图片

结果发现a.txt里面真的有内容
【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第5张图片

⭐注意
write方法的参数是整数,但是实际上写到本地文件中的是整数在ASCII上对应的字
每次用完流后都要释放资源

️‍一次写一个字节数组数据

【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第6张图片
【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第7张图片

️‍一次写一个字节数组的部分数据

【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第8张图片
【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第9张图片
从上面的例子中我们会发现,后面写入的数据会把前面写入的数据给覆盖掉,那么如何操作才能避免掉这种结果呢

写入数据,并且换行显示

【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第10张图片
【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第11张图片

字节输入流的基本用法

FileInputStream

操作本地文件的字节输入流,可以把本地文件的数据读取到程序中

已知a.txt文件内容如下
【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第12张图片
进行读取
【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第13张图片
循环读入
【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第14张图片

文件拷贝

一次读取一个字节
public int read()

【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第15张图片

一次读取多个字节

每次读取一个字节数组的数据,每次读取尽可能把数组装满

public int read(byte[] buffer)

【从入门到起飞】JavaSE—IO流(1)字节输入流&&字符输出流_第16张图片

如果大家对于这篇文章的知识点有疑问,欢迎在评论区进行讨论

你可能感兴趣的:(Java基础,java,io流,开源)