FileInputStream 与 FileOutputStream

IO流:存贮和解决数据的存储方案

FileInputStream 与 FileOutputStream_第1张图片

以上都是抽象类,不能创建实例

FileInputStream 与 FileOutputStream_第2张图片

FileOutputStream

操作本地的文件,把文件写入本地磁盘

步骤:

1.创建字节输出流对象

  • 参数是字符串表示的路径或者是File对象都是可以的
  • 如果文件不存在会创建一个新的文件,但要保证父级路径是存在的
  • 如果文件存在,会清空文件

2.写数据

  • write方法是整数,实际写到文件中的是整数在AsCll中对应的字符

3.释放资源

  • 每次用完流都要释放资源

字节流写出数据的方式(3种)

  • void write(int b)
  • void write(byte[] b)
  • void write(byte[] b,int off,int len)

换行与续写

换行: (再次写出一个换行符就可以了)

window :\r \n

linux: \n

mac: \r

创建流对象时第二个参数是续写开关,

true是续写打开

false是续写关闭

FileInputStream

操作本地文件的输入流

步骤:

1.创建对象

        文件路径不存在会直接报错

2.读取数据

        一次读取一个字节,读取出来的数字是数据在ASCLL上对应的数字

       当读到文件末尾后会返回-1(空格和没有是不同的)

3.释放资源

        字节输入流循环读取

int b;
while ((b=fip.read())!=-1){
    fop.write(b);
}

文件拷贝

  1. 创建对象
  2. 拷贝

核心思想,边读边写

while ((b=fip.read())!=-1){
    fop.write(b);
}

FileInputStream 与 FileOutputStream_第3张图片

优化:

一个传输一个字节数组

int len;
byte[] bytes=new byte[1024*1024];
while ((len=fip.read(bytes))!=-1){
    fop.write(bytes,0,len);
}

3.释放资源

规则:先开的最后关闭

FileInputStream 与 FileOutputStream_第4张图片

IO流中的异常捕获

(实际开发都是抛出处理理解就行)

你可能感兴趣的:(IO流,IO流,java)