Java字节流

1.如果一个文件使用Windows自带的记事本打开能够读懂就使用字符流,否则使用字节流

2.字节流抽象基类

        1)InputStream:这个抽象类是表示字节输入流的所有类的超类

        2)OutputStream:这个抽象类是表示字节输出流的所有类的超类

        3)子类名特点:子类名称都是以父类作为子类名的后缀

3.字节流写数据:

        1)FileOutputStream:文件输出流用于将数据写入File

                FileOutputStream fos = new FileOutputStream(myclass\\fos.txt)

        该语句包含三个操作:调用系统功能创建文件,创建字节流输出流对象,让字节输出流指向对象文件

        2)写完数据要记得调用close()方法关闭文件的占用

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

                ①void write(int b):将指定字节写书此文件输出流

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

                可通过下面的方式来使用方法2:

                byte b = "字符串".getBytes();

                文件输出流对象.write(b);

                ③void write(byte [] b, int off, int len):将len字节从指定的字节数组开始,从偏移量off开始写入此文件输出流

        4)字节流写数据的两个小问题:

                ①字节流写数据如何换行

                使用换行符:

                Windows:\r\n

                Linux:\n

                Mac:\r

                ②字节流如何追写数据:

                Public FileOutputStream(String name, boolean append)

                第一个参数选择文件,第二个参数如果为true则进行追写文件,另外是写在文件的末尾而不是开头

4.字节流读数据:

        1)一个一个读取数据:

                FileInputStream(String name):从系统文件获取字节

                Int by

                while(by =fis.read() != -1){

                        System.out.print((char)by)

                }

        注意:这样会自动读取“\n”文件的最后一位是 -1

        2)读取一个字节数组长度的数据:

        byte [] b = new byte[length]

        int len = fis.read(byte)                         //len = length

        System.out.print(new String(b))       //输出结果为字符串

/*

read(ByteBuffer[] dsts, int offset, int length) 从该通道读取字节序列到给定缓冲区的子序列中。

offset:起始点       length:复制长度

*/

·字节缓冲流:
      1BufferOutStream:该类实现缓冲输出流。该类内置一个8192长度的byte数组。

BufferOutputStream:该类实现缓冲输入流。同样的内置一个8192长度的字节数组。当从流中读取或跳过字节时,内部缓冲区根据需要从所包含的输入流中重新填充,一次很多字节。

        2)asBufferOutputStream bos = new BufferOutputStream(new FileOutputStream fos("地址字符串"))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

少不入川。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值