【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中的内容读取出来在控制台输出

 

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

①创建字节输入流对象

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

③释放资源

目录
相关文章
|
2天前
|
存储 移动开发 Java
从零开始学习 Java:简单易懂的入门指南之IO字节流(三十)
从零开始学习 Java:简单易懂的入门指南之IO字节流(三十)
|
2天前
|
Java
java一分钟之-字符流与字节流的区别
【5月更文挑战第11天】Java的输入输出通过流操作,分为字符流和字节流。字节流处理二进制数据,如图片、音频,基类是`InputStream`和`OutputStream`;字符流处理文本,基类是`Reader`和`Writer`。字符流涉及编码转换,字节流不涉及。易错点包括乱码(需指定编码)、混用流类型和忘记关闭流。示例展示了字节流和字符流读文件。理解区别并注意编码和资源管理可提高代码质量。
36 3
|
2天前
|
存储 缓存 Java
【Java IO系列】那字节流和字符流有什么区别?
而如果使用缓存流,一次性从文件里读取多个字节到缓存中,可以减少系统调用同时也减少了磁盘读取,提高了读取的效率。所以字符流是一个很方便的流了,没有必要把一个方便的流转换成一个不方便的流。,涉及到用户空间和内核空间之间的上下文切换,这些切换是很昂贵的。从输入流读取下一个数据字节,值字节以0到255范围内的。好的面试官,Java IO有两个参与对象,一个是。,这个基类提供了3个方法可以来读取字节流。,同样是提供了3个方法来支持字符流读取。好的,有这些不同之处,主要是3个方面。是这样的,虽然字节流比字符流的。
20 1
【Java IO系列】那字节流和字符流有什么区别?
|
2天前
|
Java
Java文件字节流
Java文件字节流
14 0
|
2天前
|
Java
Java-.文件字节流docx
Java-.文件字节流docx
18 0
|
2天前
|
Java 索引
JAVA零基础小白免费学习教程day16-字节流&字符流(三)
JAVA零基础小白免费学习教程day16-字节流&字符流
45 0
|
2天前
|
存储 Java Windows
JAVA零基础小白免费学习教程day16-字节流&字符流(二)
JAVA零基础小白免费学习教程day16-字节流&字符流
81 0
|
2天前
|
存储 移动开发 Java
JAVA零基础小白免费学习教程day16-字节流&字符流(一)
JAVA零基础小白免费学习教程day16-字节流&字符流
53 0
|
2天前
|
缓存 Java
IO流【Java中IO的四大抽象类、常用流详解 、 缓冲字节流、 文件字符流、缓冲字符流】(二)-全面详解(学习总结---从入门到深化)
IO流【Java中IO的四大抽象类、常用流详解 、 缓冲字节流、 文件字符流、缓冲字符流】(二)-全面详解(学习总结---从入门到深化)
41 0
IO流【Java中IO的四大抽象类、常用流详解 、 缓冲字节流、 文件字符流、缓冲字符流】(二)-全面详解(学习总结---从入门到深化)
|
2天前
|
数据采集 存储 Java
JAVA BIO 字节流和字符流区别
【1月更文挑战第1天】JAVA BIO 字节流和字符流区别