Java FileOutputStream

472 阅读2分钟

字节输出流FileOutputStream

操作本地文件的字节输出流,可以把程序中的数据写到本地文件中

基本用法

书写步骤

  • 创建字节输出流对象
    • 记得抛出编译时期异常
FileOutputStream fos = new FileOutputStream("指定文件的路径");
  • 写数据
    • 记得抛出异常
fos.write(97);
  • 释放资源
    • 记得抛出异常
fos.close();

细节

  • 创建字节输出流对象
    • 参数是字符串表示的路径或者是File对象都是可以的
    • 如果文件不存在会创建一个新的空文件,但是要保证父级路径是存在的
    • 如果文件已经存在,则会清空文件
  • 写数据
    • write方法的参数是整数,但是实际上写到本地文件的是整数在ASCII上对应的字符
  • 释放资源
    • 每次使用完流后都要释放资源

写出数据的三种方式

方法名称说明
void write(int b)一次写一个字节数据
void write(byte[] b)一次写一个字节数组数据
void write(byte[] b, int off, int len)一次写一个字节数组的部分数据
  • void write(byte[] b, int off, int len)方法细节
    • 参数一:数组
    • 参数二:起始索引
    • 参数三:个数

换行

  • 再次写出一个换行符就行了

    • window:\r\n
    • Linux:\n
    • Mac:\r
  • 在windows操作系统当中,java对回车换行进行了优化,虽然完整的是\r\n,但是我们写其中一个\r或者\n,java也可以实现换行,因为java在底层会补全

  • 建议:不要省略

FileOutputSream fos = new FileOutputStream("myio\\a.txt");
String str1 = "helloworld";
byte[] bytes1 = str1.getBytes();
fos.write(bytes1);

String wrap = "\r\n";
byte[] bytes2 = wrap.getBytes();
fos.write(bytes2);

String str2 = "666";
byte[] bytes3 = str2.getBytes();
fos.write(bytes3);
fos.close();

续写

  • 在构造方法中其实有两个参数,第二个参数是布尔类型的,表示续写开关

  • 如果想要续写,打开续写开关即可

  • 默认false:表示关闭续写开关,此时创建对象会清空文件

  • 手动传递true:表示打开续写,此时创建对象不会清空文件