java.io.OutputStream & java.io.FileOutputStream

1、Java.io.OutputStream(字节输出流)

字节输出流,这是一个抽象类,是表示输出字节流的所有类的超类。下面是该类的子类都共有的方法:

方法 作用
public void close() 关闭输出流并释放与此流相关的任何系统资源
public void flush() 刷新输出流,并强制任何缓冲的输出字节被写出
public void write(byte[] b) 将b.length字节从指定的字节数组写入此输出流,内存写到硬盘
public void write(byte[] b, int off, int len) 从指定的b字节数组写入len字节,从偏移量off开始输出到此输出流
public abstract void write(int b) 将指定的字节输出到流

2、java.io.FileOutputStream extends OutputStream

构造方法 作用
FileOutputStream(String name) 创建一个有指定名称的文件,把FileOutputStream对象指向创建好的文件,如果文件已存在,则覆盖
FileOutputStream(File file) 创建一个有指定名称的文件,把FileOutputStream对象指向创建好的文件,如果文件已存在,则覆盖
FileOutputStream(String name, boolean append) 创建一个有指定名称的文件,把FileOutputStream对象指向创建好的文件,如果文件已存在,append为true则在原文件追加写,否则创建新文件,覆盖原文件
FileOutputStream(File file, boolean append) 创建一个有指定名称的文件,把FileOutputStream对象指向创建好的文件,如果文件已存在,append为true则在原文件追加写,否则创建新文件,覆盖原文件

参数:String name(写入的目的地是一个文件的路径)

File file(写入数据的目的地是一个文件)

构造方法的作用

  • 创建一个FileOutputStream对象
  • 根据构造方法传递的文件,文件路径创建一个文件
  • 将FileOutputStream对象指向创建好的文件

3、写入数据的原理(内存 --> 硬盘文件)

java程序 --> JVM --> OS --> OS调用写数据的方法 --> 把数据写入到文件

4、字节输出流的使用步骤

  • 创建一个FileOutputStream对象,构造方法中传递文件路径或者文件
  • 调用FileOutputStream对象的方法write,把数据写入到文件
  • 使用完毕要清空内存,释放资源
package cn.zhuobo.day14.streamOutput;

import java.io.FileOutputStream;
import java.io.IOException; public class Demo01FileOutputStream {
public static void main(String[] args) throws IOException {
// 创建一个FileOutputStream对象,构造方法中传递文件路径或者文件
FileOutputStream fos = new FileOutputStream("/home/zhuobo//Desktop/a.txt"); // 调用FileOutputStream对象的方法write,把数据写入到文件,指定的字节97 是 a
fos.write(97);
// 释放资源,close流
// fos.close();
byte[] bytes = {97, 98, 99, 100};// abcd
//fos.write(bytes);// aabbc
//fos.close();
fos.write(bytes, 1, 2);// bc
// 写入字符串
String str = "hello";
byte[] bytes1 = str.getBytes();// 字符串转化为字符数组再写入
fos.write(bytes1);
fos.write("\n".getBytes());// 换行
fos.close();
}
}

最新文章

  1. HTML学习(二)进阶篇
  2. Socket编程实践(2) Socket API 与 简单例程
  3. ecshop 秒杀并发时库存会被减到小于0的解决办法
  4. AVFoundation播放视频时显示字幕,切换音轨
  5. paip.提升性能----硬盘不同转速不同缓存对比转
  6. VMware下OS X Yosemite安装VMsvga2桌面黑屏解决方法
  7. (R)?ex - A simple framework to simplify system administration and datacenter automation
  8. HDOJ 1312 (POJ 1979) Red and Black
  9. Atom 编辑器 前端基本插件
  10. codevs 3336 电话网络
  11. 初识Celery
  12. Linux C 程序的开发环境
  13. Microsoft Visual Studio 打开代码出现乱码解决方案
  14. Java数组的操作方法
  15. C++ STL常用容器基本用法汇总
  16. cf1121d 尺取
  17. 隐藏字符 BOM
  18. Rest风格理解
  19. SpringBoot启动加载类ApplicationRunner
  20. RedHat 安装YUM软件

热门文章

  1. ALLOT流控设备操作手册指引
  2. Nginx+Tomcat-cluster构建
  3. HR_Jumping on the Clouds
  4. 解决 pip attributeerror 'nonetype' object has no attribute 'bytes'
  5. nodejs的某些api~(四)udp&dns
  6. 以太坊、Hyperledger Fabric和Corda,哪个更好?
  7. Linux基本命令总结(三)
  8. C++的静态成员变量使用方法
  9. 高级组件——表格JTable
  10. java中异常的面试