IO流(字节输出流)

IO流(字节输出流)

 设备和设备之间的传输(读写)

    IO流的分类:
        按流的方向分为:
                输入流 --->读取数据
                输出流 --->写出数据
        按数据类型:
                字节输入流:InputStream       ----读数据
                字节输出流:OutputStream      ----写数据

                字符输入流:Reader
                字符输出流:Writer

    需求:写一个文件,这个文件内容是:hello,io:

分析:写这样一个文件:最常用的是使用字符流,但是字符流实在字节流之后才产生的,所以:先讲字节流中的字节输出流,后面讲字符流

    OutPutStream:该类是一个抽象类,不能实例化,现在使用他的对象进行写数据
                         现在的需求:针对的是文件: File 联想起来:FileOutPutStream

对于输出流和输入流来说,他们的基类的子类的后缀名是一下这种形式
XXXOutputStream
XXXInputStream
XXXReader
xxxWriter

写数据的具体步骤:
1)创建字节输出流对象
看FileOutputStream:具体类的里面的构造方法:
public FileOutputStream(File file):指定一个File对象
public FileOutputStream(String name):直接指定文件名称

    2)写数据
    3)释放资源

文件字节输出流对象中的写数据的方法:
public void write(int b):写入一个字节
public void write(byte[] b):写一个字节数组
public void write(byte[] b, int index,int len):写一部分字节数组(常用)

代码:

   public static void main(String[] args) throws IOException {
       //1)创建字节输出流对象
    FileOutputStream fos = new FileOutputStream("e:\\a.txt");

    //2)写数据
    fos.write("hello,".getBytes());
    fos.write("io".getBytes());//hello,io

    //3)释放资源
    fos.close();

    FileOutputStream fos1 = new FileOutputStream("e:\\a.txt");
    byte[] b = {65,66,67,68,69};
    fos1.write(b, 2, 2);//CD

    fos1.close();
}

如何实现一个追加操作

    构造方法:public FileOutputStream(File file, boolean append)
       如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处(可以解决换行问题)

代码:

  public static void main(String[] args) throws IOException {

     FileOutputStream fos = new FileOutputStream("e:\\a.txt",true);

     for(int x = 0;x<10;x++){
         fos.write("Hello".getBytes());
         fos.write("\r\n".getBytes());
     }

     fos.close();

     /*
      * Hello
        Hello
        Hello
        Hello
        Hello
        Hello
        Hello
        Hello
        Hello
        Hello

      * */
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值