什么是字节流,缓冲字节流及其案例

本文详细介绍了Java中的字节流概念,包括基本的字节输入输出流及其应用案例,如文件的复制。此外还讲解了如何利用带有缓冲区的字节流来提升文件操作的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字节流

1.字节流:

(1)字节输入流:InputStream,这个流是一个抽象类,我们在使用时使用FileInputStream类实现文件的输入
(2)字节输出流:OutputStream,这个流是一个抽象类,我们在使用时使用FileOutputStream类实现文件的输出
(3)所有流操作都是在字节流的基础上进行的,通过字节流读取到原始数据,然后交给其他流进行处理
(4)使用字节输入输出流可以操作字符文件,但比较麻烦,需要进行转码.如果操作字符文件建议使用字符流
(5)使用字节流更适合操作图片、音频、视频、压缩包等二进制文件,字符文件也可以操作但不建议

2.带有缓冲区的字节流:

(1)带有缓冲区的字节流属于包装流,对原始流的包装流
(2) Java的IO流提供了一个带有缓冲区的字节输入流(BufferedInputStream)、带有缓冲区的字节输出流(BufferedOutputStream)
(3)由于带有缓冲区的流是对原始流的包装流,所以要使用带有缓冲区的流必须在原始流的基础上使用
(4)缓冲区流是线程安全的,在并发情况可以保证数据的准确性,在缓冲流中使用synchronized同步锁实现

案例

1.字节输出流

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Scanner;

public class 字节输出流 {
   
    public static void main(String[] args) throws IOException {
   
        Scanner scanner = new Scanner(System.in);
        /**
         * 创建字节输出流对象,并指定输出的目标文件
         * 如果目标文件不存在则自动创建该文件,如果存在则替换该文件
         * 当第二个参数设置为true时,表示向文件中追加内容(如果文件不存在依然会创建新文件)
         */

        OutputStream outputStream = new FileOutputStream("f:/abcx.txt",true);
        //循环向文件输出内容
        while(true){
   
            System.out.print("请输入内容:");
            String str = scanner.next();
            if(str.equals("exit")){
   
                break;//退出
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值