IO流--字节流写数据

从硬盘到内存的读取过程称为IO流;

按数据流向:

         输入流:读取数据;内存从硬盘中读取数据

         输出流:写数据;将内存中的数据写入硬盘

按数据类型:(较常用)

      字节流:字节输入输出流

      字符流:字符输入输出流

字节流的使用范围大于字符流,通常用字符流;

字节流写数据:

inputstream类-----字节输入    抽象类,是所有字节输入流的超类 

outputstream类------字节输出    抽象类,是所有字节输出流的超类

fileoutputstream extends outputstream   将数据写入文件

      fileoutputstream(Sting name);创建文件输出流以指定的名称写入文件;

   字节流写数据的三种方式:

   write(int or char  b)将指定的字节写入此文件输出流,一次只能写一个字节

  write(byte[]  b)  将b.length字节从指定的字节数组写入此文件输出流,一次写一个字节数组数据

  write(byte[]  ,int off,int len)将len字节从指定字节数组开始,从偏移量off开始写入此文件输出流,一次写一个字节数组的部分数据

 

public class fileoutput {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("java1.txt");

        fos.write('a');//这种方法只能写入字符,不能是字符串,且写入数字时会当成字符编码写入字符

        byte[] bys = {'1',97,'b',54}; //getbytes)方法可以将一个字符串转换成一个字节数组

        byte[] bys1 = "abcde".getBytes();
        fos.write(bys1);//一次写一个字节数组

        byte[] bys3 ="abcde".getBytes();
        fos.write(bys3,1,3);//一次写一个字节数组的一部分,写入bcd
            //off编号从0 开始,len表示需要写入的长度;

        fos.close();//写入后关闭输出流且释放了与此输出流相关的资源
    }
}

对于换行符,不同系统识别的字符不一样

windows :\r\n   记事本这个才能认为是换行符

linux  : \n

mac  :   \r

追加写入:

 FileOutputStream fos = new FileOutputStream("java1.txt",true);
表示追加写入,true参数认为是追加写,如果不加这个参数,认为是从开头写

 

可以异常处理的字节流写数据

package filestream;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class fileoutput {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos  = null;  //最外部定义,finally才能识别
        try {

            fos = new FileOutputStream("java1.txt", true);
            fos.write('a');//这种方法只能写入字符,不能是字符串,且写入数字时会当成字符编码写入字符

            byte[] bys = {'1', 97, 'b', 54}; //getbytes)方法可以将一个字符串转换成一个字节数组

            byte[] bys1 = "abcde".getBytes();
            fos.write(bys1);//一次写一个字节数组

            byte[] bys3 = "abcde".getBytes();
            fos.write(bys3, 1, 3);//一次写一个字节数组的一部分,写入bcd
            //off编号从0 开始,len表示需要写入的长度;
        }
        catch(IOException e){
            e.printStackTrace();
        }
        finally {
            try{
                assert fos != null;
                fos.close();}//写入后关闭输出流且释放了与此输出流相关的资源
            catch (IOException e){e.printStackTrace();}
        }


    }
}

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zero _s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值