小言_互联网的博客

Java语言之文件字节输出流FileOutputStream

400人阅读  评论(0)

一,概述

1,IO流概念:
I:input,输入,即把硬盘中的数据读取到内存中使用,也叫读取;
O:output,输出,把内存中的数据写入到硬盘当中保存,也就写入;
流:即数据(字符、字节),1字符=2字节,1字节=8位。

2,一切皆字节。一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终为二进制数据。

二,字节输出流OutputStream

java.io.OutputStream:字节输出流,此抽象类是表示输出字节流的所有类的超类。

子类共有的成员方法
1,public void close():关闭输出流,释放系统资源。
2,public void flush():刷新此输出流并强制任何缓冲的输出字节被写出。
3,public void write(byte[] b):将b.length字节从指定字节数组写入此输出流。可一次写多个字节:如果第一个字节是正数(0-127),则显示的时候会查询ASCII表;如果是负数,则会两个字节组成一个中文字符进行显示,查询系统默认码表(GBK)。
4,public void write(byte[] b,int off,int len):从指定字节数组写入len字节,从偏移量off开始输出到此输出流。

5,public abstract void write(int b):将指定的字节输出流。

三,实现类FileOutputStream

java.io.FileOutputStream extends OutputStream,此类为文件文件字节输出流。
作用:把内存中的数据写入到硬盘的文件中。

构造方法
1,FileOutputStream(String name):创建一个向具有指定名称的文件中写入数据的输出文件流。
2,FileOutputStream(File file):创建一个向指定file对象表示的文件中写入数据的输出文件流。
3,FileOutputStream​(File file, boolean append) 创建文件输出流以写入由指定的 File对象表示的文件。
4,FileOutputStream​(String name, boolean append) 创建文件输出流以指定的名称写入文件。
参数
File file: 目的地是一个文件;
String name:目的地是一个文件的路径。
构造方法的作用
1,创建一个FIleOutputStream对象;
2,会根据构造方法中传递的文件/文件路径,创建一个空文件;
3,会把FIleOutputStream对象指向创建的文件。

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;

public class DemoFileOutputStream {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\IdealProjects\\demo\\src\\Month_05\\day5_16\\2.txt");
        byte[] arr = {65,66,97,98};
        fos.write(arr);//ABab

        fos.write(100);//d

        fos.write(arr,1,2);//Ba

        byte[] bytes = {-29,-24,-28,-69,69};//殍浠E
        fos.write(bytes);

        byte[] bytes1 = "您好".getBytes();
        System.out.println(Arrays.toString(bytes1));
        //[-26, -126, -88, -27, -91, -67],UTF-8编码,1中文3字节
        fos.write(bytes1);

        fos.close();
    }
}


追加写入/续写
参数
String name,File file:写入数据的目的地;
boolean append:追加写开关。
true:创建对象不会覆盖源文件,继续在末尾追加数据。
false:创建新文件,覆盖源文件。

换行符表示形式
window:"\r\n";
linux:"/n";
mac:"/r"。

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

public class DemoFileOutputStreamAdd {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\IdealProjects\\demo\\src\\Month_05\\day5_16\\2.txt",true);
        for (int i = 0; i < 10; i++) {
            fos.write("你好".getBytes());
            fos.write("\r\n".getBytes());
        }
    }
}

转载:https://blog.csdn.net/weixin_43529573/article/details/106159053
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场