`
liujiawinds
  • 浏览: 136386 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java.io部分API

    博客分类:
  • java
 
阅读更多

常用
(一)、字节流
1java.io.InputStream   abstract  java.io.InputStream

此抽象类是表示字节输入流的所有类的超类。

需要定义 InputStream 的子类的应用程序必须始终提供返回下一个输入字节的方法。

子类1java.io.FilterInputStream

FilterInputStream 包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。FilterInputStream 类本身只是简单地重写那些将所有请求传递给所包含输入流的 InputStream 的所有方法。FilterInputStream 的子类可进一步重写这些方法中的一些方法,并且还可以提供一些额外的方法和字段。

 

子类11java.io.BufferedInputStream

作为另一种输入流,BufferedInputStream 为添加了功能,即缓冲输入和支持 mark  reset 方法的能力。创建 BufferedInputStream 时即创建了一个内部缓冲区数组。读取或跳过流中的各字节时,必要时可根据所包含的输入流再次填充该内部缓冲区,一次填充多个字节。mark 操作记录输入流中的某个点,reset 操作导致在从所包含的输入流中获取新的字节前,再次读取自最后一次 mark 操作以来所读取的所有字节。

 

子类2java.io.FileInputStream

FileInputStream 从文件系统中的某个文件中获取输入字节。哪些文件可用取决于主机环境。

FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流请考虑使用FileReader

其他子类:AudioInputStreamByteArrayInputStreamInputStreamObjectInputStreamPipedInputStream,SequenceInputStreamStringBufferInputStream

 

2java.io.OutputStream  abstract java.io.OutputStream

此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接收器。

需要定义 OutputStream 子类的应用程序必须始终提供至少一种可写入一个输出字节的方法。

子类1java.io.FilterOutputStream

此类是过滤输出流的所有类的超类。这些流位于已存在的输出流(基础 输出流)之上,它们将已存在的输出流作为其基本数据接收器,但可能直接传输数据或提供一些额外的功能。

FilterOutputStream 类本身只是简单地重写那些将所有请求传递给所包含输出流的 OutputStream的所有方法。FilterOutputStream 的子类可进一步地重写这些方法中的一些方法,并且还可以提供一些额外的方法和字段。

子类11java.io.BufferedOutputStream

该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入基础输出流中,而不必为每次字节写入调用基础系统。

 

子类2java.io.FileOutputStream

文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。文件是否可用或能否可以被创建取决于基础平台。特别是某些平台一次只允许一个 FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。

FileOutputStream 用于写入诸如图像数据之类的原始字节的流。要写入字符流请考虑使用FileWriter

 

其他子类:ByteArrayOutputStreamObjectOutputStreamOutputStreamPipedOutputStream

 

(二)、字符流

1java.io.Reader   abstract

       用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int)  close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。

子类1java.io.BufferedReader

从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。

可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。

通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader InputStreamReader)。例如,

 BufferedReader in

   = new BufferedReader(new FileReader("foo.in"));

 

将缓冲指定文件的输入。如果没有缓冲,则每次调用 read()  readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的

可以对使用 DataInputStream 进行按原文输入的程序进行本地化,方法是用合适的BufferedReader 替换每个 DataInputStream

子类2java.io.InputStreamReader
        InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,否则可能接受平台默认的字符集。如BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));
子类21java.io.FileReader

用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader

FileReader 用于读取字符流。要读取原始字节流,请考虑使用 FileInputStream

其他子类: CharArrayReaderFilterReaderPipedReaderStringReader

 

2java.io.Writer  abstract

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

子类1java.io.BufferedWriter

将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。

该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性line.separator 定义。并非所有平台都使用新行符 ('\n') 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。

通常 Writer 将其输出立即发送到基础字符或字节流。除非要求提示输出,否则建议用BufferedWriter 包装所有其 write() 操作可能开销很高的 Writer(如 FileWriters OutputStreamWriters)。例如,

 PrintWriter out

   = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));

 

将缓冲 PrintWriter 对文件的输出。如果没有缓冲,则每次调用 print() 方法会导致将字符转换为字节,然后立即写入到文件,而这是极其低效的。

子类2java.io.OutputStreamWriter

OutputStreamWriter 是字符流通向字节流的桥梁:使用指定的 charset 将要向其写入的字符编码为字节。它使用的字符集可以由名称指定或显式给定,否则可能接受平台默认的字符集。

子类21java.io.FileWriter

用来写入字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是可接受的。要自己指定这些值,可以先在 FileOutputStream 上构造一个 OutputStreamWriter

文件是否可用或是否可以被创建取决于基础平台。特别是某些平台一次只允许一个 FileWriter(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。

FileWriter 用于写入字符流。要写入原始字节流,请考虑使用 FileOutputStream

其他子类: CharArrayWriterFilterWriterPipedWriterPrintWriterStringWriter

 

(三)和文件有关的

java.io.File

文件和目录路径名的抽象表示形式。

用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。抽象路径名 有两个组件:

  1. 一个可选的与系统有关的前缀 字符串,比如盘符,"/" 表示 UNIX 中的根目录,"\\\\" 表示Microsoft Windows UNC 路径名,以及
  2. 零个或更多字符串名称 的序列。

除了最后一个,抽象路径名中的每个名称代表一个目录;最后一个名称既可以代表目录,也可以代表文件。空的 抽象路径名没有前缀和名称序列。

 

java.io.FileDescriptor

文件描述符类的实例用作与基础机器有关的某种结构的不透明句柄,该结构表示开放文件、开放套接字或者字节的另一个源或接收者。文件描述符的主要实际用途是创建一个包含该结构的 FileInputStream FileOutputStream

 

java.io.FilePermission

此类表示对文件和目录的访问。FilePermission 由文件名和对该路径名有效的操作集合组成。

 

(四)其他

java.lang.Object
java.io.OutputStream 
java.io.FilterOutputStream 
java.io.PrintStream

PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。它还提供其他两项功能。与其他输出流不同,PrintStream 不会抛出 IOException;而是,异常情况仅设置可通过checkError 方法测试的内部标志。另外,为了自动刷新,可以创建一个 PrintStream;这意味着可在写入字节数组之后自动调用 flush 方法,可调用其中一个 println 方法,或写入一个新行字符或字节('\n')

PrintStream 打印的所有字符都使用平台的默认字符编码转换为字节。在需要写入字符而不是写入字节的情况下,应该使用 PrintWriter 类。

 

java.lang.Object 
java.io.Writer 
java.io.PrintWriter

 

java.lang.Object 
java.io.Reader 
java.io.StringReader

其源为一个字符串的字符流。

java.lang.Object 
java.io.Writer 
java.io.StringWriter

一个字符流,可以用其回收在字符串缓冲区中的输出来构造字符串。

 

分享到:
评论

相关推荐

    Java.nio 与Java.io比较

    Java.io中还有专门针对非流式文件I/O的部分,这部分涵盖了文件的创建、删除、重命名等高级操作。`File`类帮助编写跨平台的代码,用于检查和操作文件和目录。 ### Java.nio简介 Java.nio(New I/O)是Java 1.4版本...

    这是 IPinfo.io IP 地址 API 的官方 Java 客户端库,允许您查找自己的 IP 地址,或获取 IP 的以下任何

    这是 IPinfo.io IP 地址 API 的官方 Java 客户端库,允许您查找自己的 IP 地址,或获取 IP 的以下任何详细信息: IP地理定位数据(城市、地区、国家、邮政编码、经纬度) ASN 信息(ISP 或网络运营商、关联域名和...

    socket.io,socket.io-client下载

    在客户端,你可以使用`socket.io-client`库,这个库通常用于JavaScript运行环境,如浏览器或React Native等,但也有针对Java和Android的实现,如你提到的`socket.io-client-0.5.0.jar`。 在Java或Android项目中,`...

    用java写socket.io客户端所需jar包

    这些库通常会提供API,让你能够轻松地与Socket.IO服务器进行交互。 1. **java-socket.io-client**:这是一个流行的Java实现,提供了与Node.js Socket.IO服务器交互的能力。为了使用这个库,你需要将对应的jar包添加...

    gnu.io.rar_android_gnu.io _librxtxSerial_librxtxSerial._librxtxS

    在Android平台上进行串口通信开发时,常常会遇到需要与硬件设备进行低...为了使用这个库,你需要将其整合到你的Android Studio项目中,配置JNI路径,确保所有依赖项正确,然后在Java代码中调用相关的API进行串口操作。

    java_io.rar_java 文件操作_java 读取 本地文件_java.io转动_文件操作

    在Java编程语言中,文件操作是程序开发中的基础部分,特别是在处理输入/输出(I/O)时。本资源“java_io.rar”提供了关于如何在Java中进行文件操作的示例代码,包括读取、移动、删除和复制文件等常见任务。我们将深入...

    rxtx-2.1.7.jar串口通信gnu.io包不存在问题

    在Java编程环境中,进行串口通信时,常常会遇到一个问题:缺少`gnu.io`包,导致无法正常编译或运行程序。这个问题主要出现在使用RXTX库进行串口操作的项目中。RXTX是一个开源的Java库,它提供了与硬件进行串行通信的...

    lumenworks.framework.io.Dll

    lumenworks.framework.io.dll就是这样一款跨语言的动态链接库(DLL),它专为C#、C++和Java等编程语言设计,同时也适用于数据爬取相关的应用。本文将深入探讨lumenworks.framework.io.dll的核心特性、使用场景以及与...

    java socket.io 0.8.3

    Java Socket.IO 0.8.3 是一个针对Java平台的实时通信库,它基于WebSocket协议,同时也支持多种其他传输方式,以确保数据在客户端和服务器之间的无缝交互。这个版本是通过Maven管理的,这意味着它可以方便地与其他...

    cex.io-api-java:Cex.io Java API

    #Cex.io Java API Cex.io API 的 Java 源文件和示例。 这是一个在 MIT 许可下的开源项目。 指数 下订单 获取未结订单 取消未结订单 获取账户哈希率 获取 Worker 哈希率 其他帮助 接触 Author : Zack Urben Contact...

    Socket.IO demo程序

    Socket.IO的目标是提供一个跨平台、易于使用的API,使得开发者能够在各种浏览器和移动设备上实现WebSocket-like的通讯。WebSocket是一种在HTTP协议基础上的全双工通信协议,而Socket.IO不仅支持WebSocket,还通过...

    JAVA API官方中文版手册chm文件文档

    JAVA API官方文档中文版软件包 java.applet java.awt java.awt.color java.awt.datatransfer java.awt.dnd java.awt.event java.awt.font java.awt.geom java.awt.im java.awt.im.spi java.awt.image ...

    Java jdk api 1.8_google.CHM JDK API 1.8谷歌翻译中文版在线参考手册

    `java.nio`包是Java的非阻塞I/O模型,提供了基于通道(Channel)和缓冲区(Buffer)的I/O操作,相比于传统的`java.io`包,`java.nio`在处理大容量数据时通常能获得更好的性能。此外,`java.net`包包含了网络通信相关...

    i18n Tools helper

    import com.google.api.translate.Language; import com.google.api.translate.Translate; import java.io.*; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * . ...

    socket.io-client:Java语言的Socket.io客户端实现

    该存储库包含用Java语言编写的Socket.IO客户端实现。 如果您不了解socket.io,则它基本上是一个旨在提供实时,双向和基于事件的通信的框架。 您可以访问以了解更多信息。 安装 您可以使用以下方法安装该库: Maven ...

    javax.mail.jar-Java发送邮件API

    javax.mail.jar-Java发送邮件API。Apache Email基于javax.mail做了一个开源项目,参见:http://commons.apache.org/proper/commons-email/

    socket.io java demo下载

    `来使用Socket.IO客户端API。 2. **建立连接**: 要建立到Socket.IO服务器的连接,可以使用以下代码: ```java Socket socket = IO.socket("http://yourserver.com"); socket.connect(); ``` 这里"yourserver...

    socket.io-client-2.2.0.zip

    - **API**:Socket.IO提供简单易用的API,使得开发者可以方便地发送和接收消息。 - **应用**:常用于实时聊天应用、在线游戏、协作工具、实时数据分析等领域。 2. **Hibernate Search**: - **概述**:Hibernate...

    gnu.io.SerialPort x86&x64 include all .dll files

    这是一个开源项目,它实现了Java Communications API (javax.comm),使得Java开发者可以方便地访问和控制串行端口。这个库主要用于读写串行数据,配置波特率、奇偶校验、数据位和停止位等参数,对于设备控制、数据...

    api-0.1.27-API文档-中文版.zip

    标签:controlplane、api、envoyproxy、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...

Global site tag (gtag.js) - Google Analytics