• 重学java 61.IO流 字节流 ② 字节输出流


    夜色难免黑凉,前行必有曙光

                                         —— 24.6.4

    一、I0流介绍以及输入输出以及流向的介绍

    1.单词:

            output:输出        Input:输入        write:写数据        read:读数据

    2.IO流:

            将一个设备上的数据传输到另外一个设备上,称之为IO流技术

    3.为什么要学IO流?

            之前学了一个集合以及数组,可以保存数据,但是这两个都是临时存储(代码运行完毕,集合和数组会从内存中消失,从而数据就不存在了),所以集合和数组达不到永久保存的目的,我们希望咱们的数据永久保存起来,所以我们就可以将数据保存到硬盘上,此时我们就可以随时想拿到硬盘上的数据就随时拿

            而且我们将来传输数据,必然要用到输入,输出动作

    二、IO流的流向 针对se阶段的IO

            输出流:Output

                    内存 —> 硬盘        输出流:从内存出发,将数据写到硬盘上

            输入流:Input

                    硬盘 —> 内存        输入流:将数据从硬盘上读到内存中

            要是从电脑间进行数据传输,就是相对的,发数据的一方就是输出流,收数据的乙方就是输入流

    三、IO流的分类

            字节流

                    万能流、一切皆字节

                    分为:字节输出流和字节输入流

                    字节输出流:OutputStream 抽象类

                    字节输入流:InputStream 抽象类

            字符流

                    专门操作文本文档

                            字符输出流:Writer 抽象类

                            字符输入流:Reader 抽象类

    四、字节输出流

    1.概述:

            字节输出流,Outputstream 是一个抽象类

                    子类:Fileoutputstream

    2.作用:往硬盘上写数据

    3.构造:

            Fileoutputstream(File file)

            Fileoutputstream(String name)]

    4.特点:

            a.指定的文件如果没有,输出流会自动创建

            b.每执行一次,默认都会创建一个新的文件,覆盖老文件

    5.方法:

            void write(int b) —> 一次写一个字节
            void write(byte[] b) —> 一次写一个字节数组

            void write(bytel] b, int off, int len) —> 一次写一个字节数组一部分
                    b:写的数组

                    off:从数组的哪个索引开始写

                    len:写多少个

            void close() —> 关闭资源

    字节流的续写追加:

            Fileoutputstream(string name, boolean append)

                    append:true —> 续写追加,文件不覆盖

    1. import java.io.FileOutputStream;
    2. import java.io.IOException;
    3. public class Demo266FileOutputStream {
    4. public static void main(String[] args) throws IOException {
    5. method01();
    6. method02();
    7. method03();
    8. method04();
    9. method05();
    10. }
    11. // Fileoutputstream(String name)]
    12. private static void method01() throws IOException{
    13. // Fileoutputstream(File file) 每次执行新的文件都会覆盖老文件
    14. FileOutputStream fos = new FileOutputStream("AllWillBest_Java\\1.txt");
    15. // void write(int b) —> 一次写一个字节
    16. fos.write(97);
    17. // void close() —> 关闭资源
    18. fos.close();
    19. }
    20. private static void method02() throws IOException{
    21. // void write(byte[] b) —> 一次写一个字节数组
    22. FileOutputStream fos = new FileOutputStream("AllWillBest_Java\\1.txt");
    23. byte[] buf = {97,98,99,100,101,102,103,104,105};
    24. fos.write(buf);
    25. // void close() —> 关闭资源
    26. fos.close();
    27. }
    28. private static void method03() throws IOException{
    29. // void write(bytel] b, int off, int len) —> 一次写一个字节数组一部分
    30. // b:写的数组
    31. // off:从数组的哪个索引开始写
    32. // len:写多少个
    33. FileOutputStream fos = new FileOutputStream("AllWillBest_Java\\1.txt");
    34. byte[] buf = {97,98,99,100,101,102,103,104,105};
    35. fos.write(buf,3,5);
    36. fos.close();
    37. }
    38. private static void method04() throws IOException{
    39. FileOutputStream fos = new FileOutputStream("AllWillBest_Java\\1.txt");
    40. byte[] bytes = "一切都会好的\n".getBytes();
    41. fos.write(bytes);
    42. fos.close();
    43. }
    44. private static void method05() throws IOException{
    45. // Fileoutputstream(string name, boolean append)
    46. // append:true —> 续写追加,文件不覆盖
    47. FileOutputStream fos = new FileOutputStream("AllWillBest_Java\\1.txt",true);
    48. fos.write(" 我一直相信\n".getBytes());
    49. fos.write(" 越来越好\n".getBytes());
    50. fos.close();
    51. }
    52. }

  • 相关阅读:
    后续遍历非递归算法
    Linux命令大全
    一种计算整数位1个数的新方法
    使用C#编写.NET分析器-第二部分
    【高德】改变地图的背景色为自定义样式
    使用python制作一个简单的任务管理器
    TEMU自养号测评系统如何搭建,有哪些要求
    Java中ArrayList 和 LinkedList 的区别
    Arduino开发实例-MAX30100传感器模块连接问题解决
    Biwen.QuickApi代码生成器功能上线
  • 原文地址:https://blog.csdn.net/m0_73983707/article/details/139445310