java层次体系结构吊车尾

掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识了

Java I/O主要包括如下几个层次,包含三个部分:

1.流式部分――IO的主体部分;

2.非流式部分――主要包含一些辅助流式部分的类,如:File类、RandomAccessFile类和FileDescriptor等类;

3.其他类--文件读取部分的与安全相关的类,如:SerializablePermission类,以及与本地操作系统相关的文件系统的类,如:FileSystem类和Win32FileSystem类和WinNTFileSystem类。

1. File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。

2. InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的共同特征。

3. OutputStream(二进制格式操作):抽象类。基于字节的输出操作。是所有输出流的父类。定义了所有输出流都具有的共同特征。

Java中字符是采用Unicode标准,一个字符是16位,即一个字符使用两个字节来表示。为此,JAVA中引入了处理字符的流。

4. Reader(文件格式操作):抽象类,基于字符的输入操作。

5. Writer(文件格式操作):抽象类,基于字符的输出操作。

6. RandomAccessFile(随机文件操作):它的功能丰富,可以从文件的任意位置进行存取(输入输出)操作。

1. io流的四个基本类

它们分别处理字节流和字符流

Java中其他多种多样变化的流均是由它们派生出来的:

第一种:按I/O类型来总体分类

1. Memory 1)从/向内存数组读写数据: CharArrayReader、 CharArrayWriter、ByteArrayInputStream、ByteArrayOutputStream                        2)从/向内存字符串读写数据 StringReader、StringWriter、StringBufferInputStream     2. Pipe管道  实现管道的输入和输出(进程间通信): PipedReader、PipedWriter、PipedInputStream、PipedOutputStream     3. File 文件流。对文件进行读、写操作 :FileReader、FileWriter、FileInputStream、FileOutputStream     4. ObjectSerialization 对象输入、输出 :ObjectInputStream、ObjectOutputStream     5. DataConversion数据流 按基本数据类型读、写(处理的数据是Java的基本类型(如布尔型,字节,整数和浮点数)):DataInputStream、DataOutputStream     6. Printing 包含方便的打印方法 :PrintWriter、PrintStream     7. Buffering缓冲  在读入或写出时,对数据进行缓存,以减少I/O的次数:BufferedReader、BufferedWriter、BufferedInputStream、BufferedOutputStream     8. Filtering 滤流,在数据进行读或写时进行过滤:FilterReader、FilterWriter、FilterInputStream、FilterOutputStream过     9. Concatenation合并输入 把多个输入流连接成一个输入流 :SequenceInputStream     10. Counting计数  在读入数据时对行记数 :LineNumberReader、LineNumberInputStream    11. Peeking Ahead 通过缓存机制,进行预读 :PushbackReader、PushbackInputStream    12. Converting between Bytes and Characters 按照一定的编码/解码标准将字节流转换为字符流,或进行反向转换(Stream到Reader,Writer的转换类):InputStreamReader、OutputStreamWriter

第二种:按数据来源(去向)分类    1、File(文件): FileInputStream, FileOutputStream, FileReader, FileWriter     2、byte[]:ByteArrayInputStream, ByteArrayOutputStream     3、Char[]: CharArrayReader, CharArrayWriter     4、String: StringBufferInputStream, StringReader, StringWriter     5、网络数据流:InputStream, OutputStream, Reader, Writer

6. 字节流 InputStream/OutputStream

Java中IO流的体系结构如图:

代码如下:

File类共提供了三个不同的构造函数,以不同的参数形式灵活地接收文件和目录名信息。

构造函数:1)File (String   pathname)

InputStream 为字节输入流,它本身为一个抽象类,必须依靠其子类实现各种功能,此抽象类是表示字节输入流的所有类的超类。 继承自InputStream  的流都是向程序中输入数据的,且数据单位为字节(8bit);

1) FileInputStream把一个文件作为InputStream,实现对文件的读取操作         2) ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用     3) StringBufferInputStream:把一个String对象作为InputStream     4) PipedInputStream:实现了pipe的概念,主要在线程中使用     5) SequenceInputStream:把多个InputStream合并为一个InputStream

1) ByteArrayOutputStream:把信息存入内存中的一个缓冲区中       2) FileOutputStream:把信息存入文件中       3) PipedOutputStream:实现了pipe的概念,主要在线程中使用       4) SequenceOutputStream:把多个OutStream合并为一个OutStream

流结束的判断:方法read()的返回值为-1时;readLine()的返回值为null时。

FileInputStream可以使用read()方法一次读入一个字节,并以int类型返回,或者是使用read()方法时读入至一个byte数组,byte数组的元素有多少个,就读入多少个字节。在将整个文件读取完成或写入完毕的过程中,这么一个byte数组通常被当作缓冲区,因为这么一个byte数组通常扮演承接数据的中间角色。

使用方法(2)

FileOutputStream类用来处理以文件作为数据输出目的数据流;一个表示文件名的字符串,也可以是File或FileDescriptor对象。 创建一个文件流对象有两种方法: 方式1:

方式2:

方式3:构造函数将 FileDescriptor()对象作为其参数。

方式4:构造函数将文件名作为其第一参数,将布尔值作为第二参数。

注意:(1)文件中写数据时,若文件已经存在,则覆盖存在的文件;(2)的读/写操作结束时,应调用close方法关闭流。

计算机访问外部设备非常耗时。访问外存的频率越高,造成CPU闲置的概率就越大。为了减少访问外存的次数,应该在一次对外设的访问中,读写更多的数据。为此,除了程序和流节点间交换数据必需的读写机制外,还应该增加缓冲机制。缓冲流就是每一个数据流分配一个缓冲区,一个缓冲区就是一个临时存储数据的内存。这样可以减少访问硬盘的次数,提高传输效率。

BufferedInputStream:当向缓冲流写入数据时候,数据先写到缓冲区,待缓冲区写满后,系统一次性将数据发送给输出设备。

BufferedOutputStream :当从向缓冲流读取数据时候,系统先从缓冲区读出数据,待缓冲区为空时,系统再从输入设备读取数据到缓冲区。

将BufferedInputStream与FileInputStream相接

2)将内存写入文件:

将BufferedOutputStream与 FileOutputStream相接】

Java中字符是采用Unicode标准,一个字符是16位,即一个字符使用两个字节来表示。为此,JAVA中引入了处理字符的流。

1). Reader抽象类

1) FileReader :与FileInputStream对应 主要用来读取字符文件,使用缺省的字符编码,有三种构造函数: (1)将文件名作为字符串 :

(2)构造函数将File对象作为其参数。

(3) 构造函数将FileDescriptor对象作为参数

(1) 用指定字符数组作为参数:CharArrayReader(char[]) (2) 将字符数组作为输入流:CharArrayReader(char[], int, int) 读取字符串,构造函数如下: public StringReader(String s); 2) CharArrayReader:与ByteArrayInputStream对应 3) StringReader : 与StringBufferInputStream对应 4) InputStreamReader 从输入流读取字节,在将它们转换成字符:Public inputstreamReader(inputstream is); 5) FilterReader: 允许过滤字符流 protected filterReader(Reader r); 6) BufferReader :接受Reader对象作为参数,并对其添加字符缓冲器,使用readline()方法可以读取一行。 Public BufferReader(Reader r);       主要方法:

(1)  public int read() throws IOException; //读取一个字符,返回值为读取的字符

(2)  public int read(char cbuf[]) throws IOException; /*读取一系列字符到数组cbuf[]中,返回值为实际读取的字符的数量*/   (3)  public abstract int read(char cbuf[],int off,int len) throws IOException;   /*读取len个字符,从数组cbuf[]的下标off处开始存放,返回值为实际读取的字符数量,该方法必须由子类实现*/

2) Writer抽象类

写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)、flush() 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。 其子类如下:

1) FileWrite: 与FileOutputStream对应    将字符类型数据写入文件,使用缺省字符编码和缓冲器大小。   Public FileWrite(file f);   2)  chararrayWrite:与ByteArrayOutputStream对应 ,将字符缓冲器用作输出。       Public CharArrayWrite();   3) PrintWrite:生成格式化输出       public PrintWriter(outputstream os);   4) filterWriter:用于写入过滤字符流       protected FilterWriter(Writer w);   5) PipedWriter:与PipedOutputStream对应

6) StringWriter:无与之对应的以字节为导向的stream

主要方法:

(1)  public void write(int c) throws IOException; //将整型值c的低16位写入输出流   (2)  public void write(char cbuf[]) throws IOException; //将字符数组cbuf[]写入输出流   (3)  public abstract void write(char cbuf[],int off,int len) throws IOException; //将字符数组cbuf[]中的从索引为off的位置处开始的len个字符写入输出流   (4)  public void write(String str) throws IOException; //将字符串str中的字符写入输出流   (5)  public void write(String str,int off,int len) throws IOException; //将字符串str 中从索引off开始处的len个字符写入输出流   (6)  flush( ) //刷空输出流,并输出所有被缓存的字节。   (7)close()    关闭流 public abstract void close() throws IOExceptionInputStream与Reader差别 OutputStream与Writer差别

THE END
0.吊车起重机的动力系统有哪几种类型?吊车起重机的动力系统主要有内燃机、电动机、液压系统这几种类型。内燃机是常见动力源,像柴油、汽油发动机,靠燃烧燃料产生动力,适合无电源处,功率大。电动机将电能转化为机械能,有交直流之分,具备高效环保等优点。液压系统通过液压泵加压液体,经相关元件完成机械动作,控制精准、工作平稳。不同类型各有优势,适用不同工况jvzquC41yy}/rlfwvq4dqv3ep1gtm883:88527mvon
1.危险作业有哪八种类型?危险作业有什么伤害危险作业有哪八种类型?危险作业有什么伤害 1、动火作业:在禁火区进行焊接与切割作业及在易燃易爆场所使用喷灯、电钻、砂轮等进行可能产生火焰、火花和炽热表面的临时性作业。 2、受限空间作业:指进入或探入生产单位的受限空间进行作业。 3、吊装作业:指吊车或者起升机构对设备的安装、就位作业。jvzquC41jgtbp7hjkpg/exr1o1tfy|4ou1814<4264604>8263<88A3jvor
2.企业生产安全预案范文⑥培训教育制度不落实。一些企业未全面落实三级安全教育制度,外来务工人员未经安全教育培训就上岗作业。由于人员流动性大,特种作业人员持证上岗率较低,特别是些外来承包队伍中的电焊工、冷作工、吊车工、铲车工,电工等人员无证上岗现象比较突出。 4 应对与解决策略 jvzquC41yy}/i€~qq0ipo8mcqyko1<83657/j}rn
3.崔志伟:不法是客观的,责任是主观的?——对当下归属理论的一种质疑有学者按照行为被非法利用的程度将网络帮助行为分为三种类型:偏重非法利用、易于滥用以及偶被非法使用。其中,第二种属于最为典型的表面“中立”的帮助情形。该学者指出,客观不法论无法解决后两种行为类型的可罚性问题,应引入主观不法论。还有学者将本罪的行为类型分为“漠不关心”的分离射线型和“心照不宣”的链条jvzquC41yy}/uqfpi{kykwjk0ipo8ftvkimg89773>:77mvon
4.吊车证分为哪几种类型?吊车证分为哪几种类型?wx51989326发表于2025-06-03 22:15:58 吊车证主要分为特种机动车辆驾驶证、内部准驾证、特种设备操作证等多种类型。特种机动车辆驾驶证由公安交管部门核发,按吊重不同分C1、C2、C3三个等级;内部准驾证由集团公司颁发,用于内部驾驶;特种设备操作证由质监部门颁发,证明持证人具备操作能力,有jvzquC41yy}/rlfwvq4dqv3ep1gtm8836:>847mvon
5.吊车证件现在有哪几种吊车证件现在有哪几种 吊车证件现在主要有以下几种 1. 特种机动车辆驾驶证由公安交通管理部门核发。吊车驾驶证分 C1、C2、C3 三个等级C1 适用于吊重不超过 8 吨的吊车C2 适用于 8 吨至 50 吨之间的吊车C3 适用于吊重超过 50 吨的吊车需根据吊车吨位选择相应等级。jvzquC41dcolg7uecwzp0lto0et08B87;6525>8:934ivvq
6.万事三角定律预测学100问33、人的性格共分几种类型?各种性格的特征? 解:人的性格共分4种类型:1、斥性;2、正异性;3、负异性;4、共性。无论男女凡占斥性的性格爱先发表言论,往往性格表现出英雄主义。2、正异性人先发表言论,后听别人的评价,占此性格人一般不易犯错误。3、负异性人先所别人的发言,再发表自己的意见。4、共性人平时jvzq<84yyy4489iqe0ipo8hqpvkov8731361686317967@=3:a?::;5342:/uqyon