字节输出流FileOutputStream day16

package com.shujia.day16.ketang;


import java.io.File;
import java.io.FileOutputStream;

/*
    IO流:输入输出流
        按照流向划分:
            输入流:将外部存储数据 --> java
            输出流:java --> 外部存储工具中

        按照类型划分:
            字节流(万能流):
                字节输出流:
                    OutputStream(抽象类)
                        - 实现子类:FileOutputStream
                字节输入流:
                    InputStream
            字符流:
                字符输入流:
                字符输出流:

    FileOutputStream:
        构造方法:
            FileOutputStream(File file)     创建文件输出流以写入由指定的 File对象表示的文件。
            FileOutputStream(String name)   创建文件输出流以指定的名称写入文件。


    需求:往一个文本文件中写一句话:”helloworld”

 */
public class FileOutputStreamDemo1 {
    public static void main(String[] args) throws Exception{
        //FileOutputStream(File file) 需要先将目标文件封装成一个File对象放入到构造方法
//        File file = new File("src/com/shujia/day16/data/a2.txt");
//        //若写入的目标文件不存在的话,会自动创建一个
//        FileOutputStream fos = new FileOutputStream(file);

        //FileOutputStream(String name)
        FileOutputStream fos = new FileOutputStream("src/com/shujia/day16/data/a2.txt");
        System.out.println(fos);


    }
}
package com.shujia.day16.ketang;

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

/*
    public void write(int b)            写一个字节
    public void write(byte[] b)         一次写一个字节数组
    public void write(byte[] b,int off,int len)     一次写字节数组的一部分

    思考:
        1、怎么实现追加写?

 */
public class FileOutputStreamDemo2 {
    public static void main(String[] args) {
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream("src/com/shujia/day16/data/a3.txt");

            //public void write(int b)
            //写一个字节
//             fos.write(97);
//             fos.write(98);
//             fos.write(99);
//             fos.write(100);

            //public void write(byte[] b) // 一次写一个字节数组
            byte[] bytes = {97, 98, 99, 100, 101, 102, 103};
//            fos.write(bytes);

            //public void write(byte[] b,int off,int len) 一次写字节数组的一部分
            fos.write(bytes,2,3);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //释放写数据资源
            if (fos != null) {
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}
package com.shujia.day16.ketang;

import java.io.FileOutputStream;

/*
    思考:
        1、怎么实现追加写?
        2、怎么实现换行?
 */
public class FileOutputStreamDemo3 {
    public static void main(String[] args) throws Exception {
        //若文件已经存在,会将文件中的内容清空,若想要实现追加,在传入路径之后,append属性给true
        FileOutputStream fos = new FileOutputStream("src/com/shujia/day16/data/a3.txt",true);

        fos.write("\r\n".getBytes());

        fos.write(110);
        fos.write(111);
        fos.write(112);



        fos.close();

        //释放资源之后无法再继续使用了
//        fos.write(113);


    }
}
posted @ 2024-08-15 22:15  ていせい  阅读(3)  评论(0编辑  收藏  举报