【Java】字节流

简介: 【Java】字节流

2.字节流

2.1 IO流概述和分类

 

IO流概述:

  • IO:输入/输出(Input/Output)
  • 流:使用抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输
  • IO流就是用来处理设备间数据传输问题的

       常见的应用:文件复制;文件上传;文件下载

 

2.1 IO流分类

分类:

  • 按数据的流向:

       输入流:读数据

       输出流:写数据

  • 按数据类型来分:

       字节流:

           字节输入流;字节输出流

       字符流:

           字符输入流;字符输出流


一般来说,我们说IO流的分类是按照数据类型来分的,那么这两种流在什么情况下使用呢?

 

   如果数据通过windows自带的记事本软件打开,我们还可以读懂里面的内容,就使用字符流,否则使用字节流。如果你不知道改用哪种类型的流,就使用字节流。

 

2.2字节流写数据

字节流抽象基类:

  •    InputStream:这个抽象类是表示字节输入流的所有类的超类
  •    OutputStream:这个抽象类是表示字节输出流的所有类的超类

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

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

  •    FileOutputStream(String name):创建文件输出流以指定的名称写入文件

 

   使用字节输出流写数据的步骤:

 创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件)

   调用字节输出流对象的写数据的方法

  • 释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源)

 

2.3字节流写数据的3种方式

2.4字节流写数据的两个小问题

字节流写数据如何实现换行呢?

  • 写完数据后,加换行符

       windows:\r\n

       linux:\n

       mac:\r

字节流写数据如何实现追加写入呢?

  • public FileOutputStearm(String name,boolean append)
  • 创建文件输出流以指定的名称写入文件。如果第二个参数为true,则字节将写入文件的末尾而不是开头。

2.5字节流写数据加异常处理

finally:在异常处理时提供finally块来执行所有清除操作。比如说IO流中的释放资源

特点:被finally控制的语句一定会执行,除非JVM退出

 

20210427095852351.png

2.6字节流读数据(一次读一个字节数组数据)

需求:把文件fos.txt中的内容读取出来在控制台输出

 

使用字节输入流读数据的步骤:

①创建字节输入流对象

②调用字节输入流对象的读数据方法

③释放资源

目录
相关文章
|
7月前
|
存储 移动开发 Java
从零开始学习 Java:简单易懂的入门指南之IO字节流(三十)
从零开始学习 Java:简单易懂的入门指南之IO字节流(三十)
|
2月前
|
Java 数据处理 开发者
揭秘Java IO流:字节流与字符流的神秘面纱!
揭秘Java IO流:字节流与字符流的神秘面纱!
40 1
|
2月前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
Java IO流全解析:字节流和字符流的区别与联系!
100 1
|
4月前
|
存储 缓存 Java
15 Java IO流(File类+IO流+字节流+字符流+字节编码)
15 Java IO流(File类+IO流+字节流+字符流+字节编码)
58 3
|
6月前
|
Java 数据处理 开发者
揭秘Java IO流:字节流与字符流的神秘面纱!
【6月更文挑战第26天】Java IO流涵盖字节流和字符流,字节流处理二进制数据,如图像,由InputStream/OutputStream家族管理;字符流处理文本,基于Reader/Writer,适于文本文件。在文件复制示例中,字节流用FileInputStream/FileOutputStream,字符流用FileReader/FileWriter。选择流类型取决于数据类型和处理需求,文本文件优选字符流,二进制数据则选字节流。
80 6
|
6月前
|
存储 编解码 安全
一篇文章讲明白java字符流字节流
一篇文章讲明白java字符流字节流
25 0
|
6月前
|
存储 自然语言处理 Java
Java IO流完全手册:字节流和字符流的常见应用场景分析!
【6月更文挑战第26天】Java IO流涵盖字节流和字符流,字节流用于二进制文件读写及网络通信,如图片和音频处理;字符流适用于文本文件操作,支持多语言编码,确保文本正确性。在处理数据时,根据内容类型选择合适的流至关重要。
89 0
|
6月前
|
自然语言处理 Java
Java IO流进阶教程:掌握字节流和字符流的高级用法!
【6月更文挑战第26天】Java IO流助你高效交换数据,包括字节流(InputStream/OutputStream)和字符流(Reader/Writer)的高级技巧。缓冲流(Buffered*)提升读写性能,对象流(Object*Stream)支持对象序列化。字符流的BufferedReader/BufferedWriter优化文本处理,注意字符集如UTF-8用于编码转换。掌握这些,优化IO操作,提升代码质量。
56 0
|
6月前
|
Java 测试技术
Java IO流深度剖析:字节流和字符流的性能对比!
【6月更文挑战第26天】Java IO流分字节流和字符流,字节流处理所有类型数据(如图片),字符流处理文本(基于Unicode)。字节流直接处理,性能高,适合非文本文件;字符流处理文本时考虑编码,适合文本文件。性能测试显示,字节流在读写非文本文件时更快,而字符流在处理文本时更方便。选择流类型应依据数据类型和需求。
82 0
|
6月前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
【6月更文挑战第26天】Java IO流涵盖字节流与字符流。字节流(InputStream/OutputStream)处理数据单位为字节,适用于二进制和文本,而字符流(Reader/Writer)专注于文本,处理单位为字符,处理编码转换。字符流在字节流基础上添加编码处理,以装饰器模式实现。文件复制示例展示了两者区别:字节流直接复制所有数据,字符流处理字符编码。理解并选择适当流类型对优化程序至关重要。
151 0