• 重学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. }

  • 相关阅读:
    华为OD七日集训第8期 - 按算法分类,由易到难,循序渐进,玩转OD
    中国信息通信研究院发布《中国金融科技生态白皮书》(2023)
    【python基础】python类的成员变量与成员函数的一些疑问
    STM32F1网络编程-HTTP服务器(基于W5500网卡)
    内置类型、引用类型的比较
    运维的利器–监控–zabbix–grafana
    WPF程序给按钮增加不同状态的图片
    深入理解Android Wi-Fi 第二章笔记
    小红书和达人合作步骤是什么?对接达人合作流程分享
    设计模式:装饰器模式Decorator
  • 原文地址:https://blog.csdn.net/m0_73983707/article/details/139445310