美文网首页
一起聊聊JAVA的IO流

一起聊聊JAVA的IO流

作者: 甜甜圈李 | 来源:发表于2020-04-03 21:14 被阅读0次

什么是IO流?用来处理设备之间的数据传输

Java对数据的操作是通过流的方式,操作流相关的类都在IO包中

按流向分为两种:1.输入流,2.输出流。

按操作类型分为两种:1.字节流 --可以操作任何数据,在计算机中数据都是以字节的形式存储的;2.字符流 --只能操作纯字符数据。

在IO流常用父类:1.字节流的抽象父类:InputStream和OutputStream;2.字符流的抽象父类:Reader 和Writer 。

关系与IO程序在工具中的使用,使用前,导入IO包中相关的类;使用时,要关注好IO异常的处理;使用后,记得释放资源。

那么关于IO流(FileInputStream),我们拿例子来说明一波。先明白read()方法,一次读取一个字节。

//创建一个文件输入流对象,并关联test.txt

FileInputStream fs = new FileInputStream("test.txt"); 

//定义变量,记录每次读到的字节

int a;

//将每次读到的字节赋值给b并判断是否是-1

while((a = fs.read()) != -1) { 

//打印每一个字节

System.out.println(a); 

}

//关闭流释放资源

fs.close(); 

在IO流中,FileInputStream返回值为什么是int? read()方法读取的是一个字节,为什么返回是int,而不是byte?

因为字节输入流可以操作任意类型的文件,比如图片,音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte,有可能在读到中间的时候遇到111111111,那么这11111111是byte类型的-1,我们的程序是遇到-1就会停止不读了,后面的数据就读不到了,所以在读取的时候用int类型接收,如果11111111会在其前面补上。24个0凑足4个字节,那么byte类型的-1就变成int类型的255了这样可以保证整个数据读完,而结束标记的-1就是int类型。

对于IO流的FileOutputStream,我们也拿案例说明一下,它里面包含的方法: write()一次写出一个字节。

//如果没有test.txt,会创建出一个

FileOutputStream fos = new FileOutputStream("test.txt"); 

//虽然写出的是一个int数,但是在写出的时候会将前面的24个0去掉,所以写出的一个byte

fos.write(98);

fos.write(99);

fos.close();

那么对于图片和音频的操作原理,可以关注好笔者,后续继续来给大家分享IO流的操作。

相关文章

  • 一起聊聊JAVA的IO流

    什么是IO流?用来处理设备之间的数据传输 Java对数据的操作是通过流的方式,操作流相关的类都在IO包中 按流向分...

  • Java之IO流详解

    title: Java之IO流详解tags: Java IO流categories: Java IO流 大多数应用...

  • 从0开始复习java(9)--IO

    Java的io通过java.io包下的类和接口支持。主要有输入、输出流,又分为字节流和字符流。Java的io流使用...

  • Java IO详解

    1 Java IO流的概念,分类 1.1 Java IO流的概念 java的IO是实现输入和输出的基础,可以方便的...

  • java IO入门笔记

    1.java IO流的概念,分类,类图 1.1. java IO 流的概念 java的io是实现输入和输出的基础,...

  • Java的IO和NIO

    Java的IO和NIO 一、Java的IO Java的IO功能在java.io包下,包括输入、输出两种IO流,每种...

  • java IO流

    java IO流 java流操作的类和接口 java流类图结构 IO流的定义 流是一组有顺序的,有起点和终点的字节...

  • 28、说说Java 中 IO 流

    说说Java 中 IO 流 Java 中 IO 流分为几种? 1、按照流的流向分,可以分为输入流和输出...

  • 05-Java中的IO与NIO面试题(15题)

    1、Java 中 IO 流? Java 中 IO 流分为几种?按照流的流向分,可以分为输入流和输出流;按照操作单元...

  • java io 流

    java io 流 io 流总览 io 流主要提供四个接口 InputStream: 输入字节流 OutputSt...

网友评论

      本文标题:一起聊聊JAVA的IO流

      本文链接:https://www.haomeiwen.com/subject/yaflphtx.html