您如何从Haskell中的子线程打印毛病?-英雄云拓展知识分享
135
2023-10-25
【摘要】 本书摘自《零基础Java 从入门到精通》一书中第十四章,第1节,编者是零壹快学
第 14 章
Java I/O
前面章节讲到的变量、基本类型、对象等,它们在系统中存储的数据都是在内存中暂存的数 据, 当一个程序结束时, 这些暂存数据也会被销毁。如果要永久地保留这些数据,就需要将它们 保存在电脑的磁盘文件中。Java的I/O机制可以将保存在磁盘文件中的数据读取出来,也可以将数 据删除或写入磁盘文件中(文件不限于文本文件、Excel表格、二进制文件等)。本章将详细介绍
Java I/O是如何操作的。
014.1 输入/输出流
14.1.1 什么是流
计算机编程中经常使用“流”这个抽象概念,它是指不同设备间数据传输内容的抽象。当需 要从一个数据源读取或是向一个目标写入数据时, 就可以使用流。数据源可以是文件、内存、网 络连接等,流就是这些数据在传输过程中的抽象概念,也可以理解为一个有序列的数据。
按照流的传输操作类型划分,可以分为输入流和输出流。输入流是指从一个数据源读取数据 对象;输出流是指向一个目的地传输数据对象。
图14.1.1 输入流与输出流
Java I/O,即Java Input or Output,是指Java中对流处理的方式。操作的流可以是文件、网络 请求数据、压缩包、Excel文档等。java.io包中提供了专门表示输入/输出流的类,如字节输入流
第 14 章 Java I/O
InputStream类、字节输出流OutputStream类、字符输入流Reader类和字符输出流Writer类。
java.io包中提供了负责各种方式的输入和输出的操作方法,同时也支持各种格式,比如基本类 型、对象等。下面两个小节将对输入流和输出流进行介绍。
14.1.2 输入流
Java中用来表示输入流的类分为两种,分别是字节输入流InputStream类和字符输入流Reader 类。下面对这两个类进行介绍。
1.InputStream类
InputStream类是所有字节输入流类的父类,是一个抽象类,其子类如图14.1.2所示。
图14.1.2 InputStream类的子类介绍图
InputStream类中所有方法在调用时都会抛出IOException异常,表示在处理输入/输出流时发生 的问题异常。InputStream类中的成员方法如表14.1.1所示。
基 础 Java 从入门到精通
LINGJICHU JAVA CONGRUMENDAOJINGTONG
表14.1.1 InputStream类的成员方法
方法 功能描述
available() 返回输入流中预估的可读字节数
close() 关闭输入流并释放系统资源
mark(intreadlimit) 标记输入流中的当前位置
markSupported() 判断输入流是否支持mark()和reset()方法
read() 从输入流中读取下一个字节的数据
reset() 将输入流重新定位到上次在此输入流调用mark()方法的位置
skip(long n) 跳过并丢弃输入流n个字节数据
动手写14.1.1
其运行结果为:
图14.1.3 InputStream类示例
需要注意的是,Java中并不是所有InputStream类的子类都实现或重写了InputStream类中的所有 成员方法,例如skip()和reset()方法只可以在部分子类中使用。
2.Reader类
InputStream类是用来处理字节流的,但是在Java环境中,字符文本都是Unicode编码,是双字节 的,不适合使用InputStream来进行处理。java.io包中提供了Reader类,专门用于处理字符流,降低 了开发者的开发成本。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~