IO流:字节输出流FileOutputStream的超详细用法

简介: IO流:字节输出流FileOutputStream的超详细用法

一、写数据的三种方式

1、一次写入一个字节

方法:void write(int b)

package com.hidata.devops.paas.demo;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 * @Description :
 * @Date: 2023-10-12 14:26
 */
public class TestDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\workspace_ruoyi_code\\branch\\hipaas\\paas\\src\\test\\java\\com\\hidata\\devops\\paas\\demo\\a.txt");
        fos.write(97);
        fos.close();
    }
}

2、一次写入一个字节数组

方法:void write(byte[] b)

package com.hidata.devops.paas.demo;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 * @Description :
 * @Date: 2023-10-12 14:26
 */
public class TestDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\workspace_ruoyi_code\\branch\\hipaas\\paas\\src\\test\\java\\com\\hidata\\devops\\paas\\demo\\a.txt");
        byte[] bytes = {97,98,99,100,101};
        fos.write(bytes);
        fos.close();
    }
}

3、一次写入一个字节数组的一部分

方法:void write(byte[] b,int off,int len)

其中:

  • 参数一:数组
  • 参数二:起始索引
  • 参数三:个数
package com.hidata.devops.paas.demo;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 * @Description :
 * @Date: 2023-10-12 14:26
 */
public class TestDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\workspace_ruoyi_code\\branch\\hipaas\\paas\\src\\test\\java\\com\\hidata\\devops\\paas\\demo\\a.txt");
        byte[] bytes = {97,98,99,100,101};
        fos.write(bytes,0,2);
        fos.close();
    }
}

二、换行

  • 各个操作系统的换行符号:
  • windows:\r\n
  • Linux:\n
  • Mac:\r

注意

  • 在windows系统中,java对回车换行进行了优化,虽然完整的是\r\n,但是我们写其中一个\r或者\n,java也可以实现换行,因为java在底层会自动补全
package com.hidata.devops.paas.demo;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 * @Description :
 * @Date: 2023-10-12 14:26
 */
public class TestDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\workspace_ruoyi_code\\branch\\hipaas\\paas\\src\\test\\java\\com\\hidata\\devops\\paas\\demo\\a.txt");
        fos.write(97);
        String wrap = "\r\n";
        fos.write(wrap.getBytes());
        fos.write(98);
        fos.close();
    }
}

三、续写

想要每一次写入数据,不会覆盖之前的数据,我们可以加入第二个参数,方法如下:

public FileOutputStream(String name, boolean append)

参数 append,如果为true,表示继续追加,false是直接覆盖

package com.hidata.devops.paas.demo;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 * @Description :
 * @Date: 2023-10-12 14:26
 */
public class TestDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\a.txt",true);
        fos.write(97);
        fos.write(98);
        fos.close();
    }
}


相关文章
|
安全 网络协议 Java
Thread类的用法 && 线程安全 && 多线程代码案例 && 文件操作和 IO && 网络原理初识 &&UDP socket
Thread类的用法 && 线程安全 && 多线程代码案例 && 文件操作和 IO && 网络原理初识 &&UDP socket
70 0
|
3月前
|
Java 数据处理
Java IO 接口(Input)究竟隐藏着怎样的神秘用法?快来一探究竟,解锁高效编程新境界!
【8月更文挑战第22天】Java的输入输出(IO)操作至关重要,它支持从多种来源读取数据,如文件、网络等。常用输入流包括`FileInputStream`,适用于按字节读取文件;结合`BufferedInputStream`可提升读取效率。此外,通过`Socket`和相关输入流,还能实现网络数据读取。合理选用这些流能有效支持程序的数据处理需求。
46 2
|
5月前
|
自然语言处理 Java
Java IO流进阶教程:掌握字节流和字符流的高级用法!
【6月更文挑战第26天】Java IO流助你高效交换数据,包括字节流(InputStream/OutputStream)和字符流(Reader/Writer)的高级技巧。缓冲流(Buffered*)提升读写性能,对象流(Object*Stream)支持对象序列化。字符流的BufferedReader/BufferedWriter优化文本处理,注意字符集如UTF-8用于编码转换。掌握这些,优化IO操作,提升代码质量。
52 0
|
6月前
|
存储 Java
java IO接口(Input)用法
【5月更文挑战第1天】Java的`java.io`包包含多种输入输出类。此示例展示了如何使用`FileInputStream`从`input.txt`读取数据。首先创建`FileInputStream`对象,接着创建一个字节数组存储读取的数据,调用`read()`方法将文件内容填充至数组。然后将字节数组转换为字符串并打印,最后关闭输入流。注意,`InputStream`是抽象类,此处使用其子类`FileInputStream`。其他子类如`ByteArrayInputStream`、`ObjectInputStream`和`BufferedInputStream`各有特定用途。
65 2
|
索引
文件IO之 File 类和 InputStream, OutputStream 的用法(三)
文件IO之 File 类和 InputStream, OutputStream 的用法
99 0
|
存储 Java
文件IO之 File 类和 InputStream, OutputStream 的用法(一)
文件IO之 File 类和 InputStream, OutputStream 的用法
78 0
|
6月前
|
Java API 数据库
IO流【转换流、字符输出流、数据流、对象流】(三)-全面详解(学习总结---从入门到深化)
IO流【转换流、字符输出流、数据流、对象流】(三)-全面详解(学习总结---从入门到深化)
68 0
|
6月前
IO流:字符输入流Reader的超详细用法及底层原理
IO流:字符输入流Reader的超详细用法及底层原理
100 0
|
Java
java IO接口(Input)用法demo
java IO接口(Input)用法demo
101 1
|
11月前
|
Java
【文件IO】 File类的用法和 InputStream OutputStream 的用法
【文件IO】 File类的用法和 InputStream OutputStream 的用法