如果大家对文章内容有不理解的地方,尽情留言或QQ(1357208561) 讨论。让大家共同进步。
我对IO流的理解上并没什么问题,但前一片段上课时有经常使用到IO流。发现自己对JAVAIO流没有系统的概念,JAVAIO流的要类是InputStream和OutputStream,这两个类的子类较多,而且还有一部分的包装类。SO,我要对JAVAIO流有一个系统的学习。
JAVA IO 全视图:
InputStream部分:
InputStream,它是一个抽象类,所示所有输入流的的超类。它包含了输入流的基本操作。
AudioIntpuStream,音频输入流对应的输出。结合AudioSystem可以实现:
1. 从外部音频文件、流或 URL 获得音频输入流
2. 从音频输入流写入外部文件
3. 将音频输入流转换为不同的音频格式
ByteArrayInputStream,字节数据输入流。字面的翻译。它包含了一个缓冲区,该缓冲区从输入游戏中读取字节。因为数据已经读入到缓冲区中,所以关闭流对它无效,仍然可以调用它的方法而不会抛出异常。
FileInputStream,文件输入流。从文件中获取输入字节,包含对文件流的特殊方法。如果要读取字符流,可以使用FileReader。
PipedInputStream,管道输入流。用于线程间的通讯,但不要在同一个线程中使用管道输入流和输出流,这样可能造成线程死锁。
SequenceInputStream,输入流的逻辑串联。它将多个输入流串联到一起读取。比如它串联了输入流A和B,当读取到A的结尾时,便从B流中接着读取。
StringBufferInputStream,与ByteArrayInputSteam类同,ByteArrayInputStream用于处理字节,而StringBufferInputStream用于处理字符。
ObjectInputStream,Java对象输入流。实现将对象从输入流中读取。比如将ObjectOutputStream与FileOutputStream结合使用,将JAVA对象序列化后保存到文件。然后再使用FileInputStream和ObjectInputStream将文件中被序列化的JAVA对象反序列化回来到程序中。也可以在远程通讯中使用对象流传输JAVA对象,这个比较高级。
FilterInputStream:JDK帮助文档中说它只是简单的重写将所有对输入流的操作传递给它所包含的InputStream输入流。嗯,其实它是一个Decorate模式的超类。从它继承了一些子类,用于提供一些额外的功能,向下看。
BufferedInputStream,对InputStream增加了缓存功能。以更好的支持mark和reset方法。
CheckedInputStream,校验输入流。可用于验证输入数据的完整性。与Checksum配合使用。
CipherInputStream,解密输入流。与Cipher配合使用。CipherOutputStream是加密输出流。对数据进行加解密使用。
DigestInputStream,摘要输入流。这个比较少见,棱一看JDK手册,不太了解。不过数据摘要是用于安全通讯或数据完整证验证的。哦,它与MessageDigest配合使用,可见JAVA IO设计者的用心!
LineNumberInputStream,行号输入流。此类已过时。它假定输入流是字符流,它调用InputStream的方法并将\n\r统一转换成一个\n。每读到一个换行时,便将行号加1,初始行号为0。此类不深入研究了!
ProgressMonitor,进度监视输入流。用于监视用户读取的进度,如果这个流很大。它会自动弹出进度提示窗口,用户可以点击“Cancel”按钮,取消读取。这个也实JAVAIO给实现了,比较人性化!
PushBackInputStream,推回输入流。就是可以将从输入流中读取的数据,调用unread方法将数据推回到输入流中,也可以将其他数据推进去。JDK手册中举了一个例子说,将标识符字符读取后,可以推回到输入然,然后重复读取,在哪里需要这样的应用呢?
DataInputStream,数据输入流。可以以与机器无关方式从底层输入流中读取基本JAVA数据类型。
InflaterInputStream: 解压缩输入流。解压缩以“deflate”压缩格式的流过滤器。它与Inflater配合使用,Inflater使用流行的ZLIB压缩库。
GZipInputStream,GZip解压缩输入流。解压缩以“GZip”压缩格式的流过滤器。
ZipInputStream,Zip解压缩输入流。解压缩以“Zip”压缩格式的流过滤器。
JarInputStream,Jar解压缩输入流。可以读取Jar文件中的内容。其实Jar的压缩格式就是Zip格式。但它比Zip多了一个Manifest条目。Manifest 可用于存储有关 JAR 文件及其条目的元信息。关于Manifest,可以查看JDK手册。
OK,OutputStream在此就不一一列出了。因为OutpuStream中子类与InputStream中的子类相对应。但OutpuStream不完全具有与InputStream中的子类对应的类。因为没必要,比如AudioInputStream,没有与之对应的AudioOutputStream,我们需要读取指定格式的音频即可。如果想写出音频数据直接用FileOutputStream即可!
Java中还有Writer和Reader两个超类,主要用于处理字符流,这个比较简单就不在此做介绍了。OK!
分享到:
相关推荐
Java高级-----Java-IO系统.ppt
Java开发案例-springboot-12-集成socket.io服务端和客户端-源代码+文档.rar Java开发案例-springboot-12-集成socket.io服务端和客户端-源代码+文档.rar Java开发案例-springboot-12-集成socket.io服务端和客户端-源...
`commons-io-2.5.jar` 是Apache Commons项目的一部分,它提供了一系列增强和扩展了Java标准IO库的类和方法。这个库为开发者提供了更高效、更便捷的方式来执行常见的文件、目录和流操作。 一、Java IO 基础 Java IO ...
java上传jar;...commons-io-1.3.2.jar;java上传jar包;java下载jar包;java上传jar;java下载jar;java上传下载需要的jar:commons-fileupload-1.2.jar;commons-io-1.3.2.jar;java上传jar包;java下载jar包;
在Java开发中,上传文件是一项常见的任务,而`commons-fileupload-1.3.3.jar`和`commons-io-2.6.jar`是Apache Commons项目中的两个重要库,专门用于处理HTTP请求中的文件上传功能。这两个库为开发者提供了便捷、高效...
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。这个教程“Introduction-to-Java-IO”旨在深入理解Java IO系统,包括它的设计原理、使用方法,以及对Java New IO(NIO)的介绍。...
在实际开发中,当你需要在Web应用中实现文件上传功能时,首先会配置`commons-fileupload-1.2.1.jar`来解析请求,然后利用`commons-io-1.4.jar`处理上传后的文件,比如保存到服务器的指定目录,或者进行一些预处理...
《Java IO流详解与commons-io-1.4.jar库的应用》 在Java编程语言中,IO(Input/Output)流是一组用于数据传输的类,它们允许程序读取和写入数据,无论是从磁盘、网络还是其他输入输出设备。Java的IO流系统是一个...
Apache Commons FileUpload和Commons IO两个库是Java中处理文件上传的关键组件,它们为SpringMVC和MyBatis这样的框架提供了强大的支持。本篇文章将深入探讨这两个库以及它们在图片处理中的作用。 首先,`commons-...
protoc-gen-grpc-java-1.40.0-osx-aarch_64 mac arm芯片平台grpc生成java的支持。官网上面没有,这是基于源码编译生成的。 pom.xml:(protoc-gen-grpc-java-1.40.0.pom) <?xml version="1.0" encoding="UTF-8"?> ...
在本案例中,我们讨论的是"commons-io-2.4"版本,这个版本包含了完整的Apache Commons IO库的jar包和源代码,适用于JDK 1.6及以上版本。 Apache Commons IO 提供了许多实用工具类,使得开发者在处理输入/输出操作时...
java-IO流 commons-io-2.11.0.jar
在使用`commons-fileupload-1.3.2.jar`处理文件上传时,通常会配合`commons-io-2.5.jar`来完成一些辅助操作,例如读取上传文件的内容、检查文件类型、移动文件到目标位置等。通过这两个库的组合,开发者能够方便地在...
Java的IO流是Java编程语言中的重要组成部分,它主要用于数据的输入和输出操作。在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO...
本话题将详细讲解`JAVAcommons-fileupload-1.4.jar`和`commons-io-2.6.jar`这两个库,它们在处理文件上传和输入/输出操作时扮演着关键角色。 **Apache Commons FileUpload** `commons-fileupload-1.4.jar`是Apache...
java IO教程,java IO教程,java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程java IO教程java IO教程java IO教程java IO教程,java IO教程,java IO教程,java IO教程,java IO...
总结来说,`commons-fileupload-1.2.1.jar`和`commons-io-1.3.2.jar`是Java Web应用中处理文件上传的必备工具,它们提供了丰富的功能和良好的性能,简化了开发流程,使开发者可以专注于业务逻辑而不是底层细节。
标题中的"commons-fileupload-1.2.1.jar与commons-io-1.3.2.jar"涉及的是两个在Java开发中常用的开源库,主要用于处理HTTP协议上传文件的需求。这两个库在JSP(JavaServer Pages)开发中尤为重要,因为它们简化了...
本教程将深入讲解如何使用Java Servlet、Apache Commons IO库(版本2.4)以及Apache Commons FileUpload库(版本1.3)来实现这一功能。 一、Apache Commons IO与FileUpload库介绍 Apache Commons IO是一个Java库,...
Commons IO 是 Apache Software Foundation 开发的一个 Java 库,它的核心组件是 `commons-io-2.6.jar`。这个版本的 JAR 文件包含了丰富的输入/输出流、文件操作、I/O 流工具类以及与文件系统交互的相关功能。下面将...