Java IO流之字节流

FileOutputStream

  1、构造方法
 FileOutputStream(File file)
 FileOutputStream(String name)
  参数为文件路径的字符串或者文件格式都可以

FileOutputStream out = new FileOutputStream("a.txt");
out.close();

  创建字节输出流对象了做了几件事情?
  a:调用系统资源创建a.txt文件
  b:创建了一个out对象
  c:把out对象指向这个文件
  为什么一定要close()?
  a: 通知系统释放关于管理a.txt文件的资源
  b: 让Io流对象变成垃圾,等待垃圾回收器对其回收
  2、成员方法
  (1)write()方法
  public void write(int b):写一个字节 超过一个字节 砍掉前面的字节
  public void write(byte[] b):写一个字节数组
  public void write(byte[] b,int off,int len):写一个字节数组的一部分
  写如数据时的换行: windows下的换行符是 \r\n,Linux是\n,Mac是\r
  数据的追加写入: 构造方法参数后加true

FileOutputStream out = new FileOutputStream("fos.txt" , true) ;
FileInputputStream

  read()方法
  int read():一次读取一个字节,如果没有数据返回 -1
  int read(byte[] b) :从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
   int read(byte[] b, int off, int len) 从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
  
  
  案例演示:采用多种方式,把D:\a.txt的内容复制到D:\b.txt中
方式1:基本字节流一次读写一个字节

    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class Demo2 {
        public static void main(String[] args) throws IOException {
            FileInputStream in = new FileInputStream("D:\\a.txt");
            FileOutputStream out = new FileOutputStream("D:\\b.txt");
            int len = 0;
            while((len=in.read())!=-1){
                out.write(len);
                out.flush();
            }
            in.close();
            out.close();;
    
        }
    }

方式2:基本字节流一次读写一个字节数组

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

public class Demo3 {
    public static void main(String[] args) throws IOException {
        FileInputStream in = new FileInputStream("D:\\a.txt");
        FileOutputStream out = new FileOutputStream("D:\\b.txt");
        int len = 0;
        byte[] bytes = new byte[1024*8];
        while((len=in.read(bytes))!=-1){
            out.write(bytes,0,len);
            out.flush();
        }
        in.close();
        out.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值