I/O类库通常使用“流stream”这个抽象概念,它代表任何有能力产生数据的数据源对象或者是有能力接收数据的接收端对象。“流”屏蔽了实际的I/O设备中处理数据的细节。
BufferedReader in = new BufferedReader(
new FileReader("IOStreamDemo.java"));
BufferedReader stdin = new BufferedReader(
new InputStreamReader(System.in));// java.io.BufferedReader(java.io.Reader)
//而System.in是一个InputStream,因此用InputStreamReader进行转换(适配器模式)
1. 要想打开一个文件用于字符输入,我们可以使用以String或File对象作为文件名的FileReader。为了提高速度,我们希望对那个文件进行缓冲,那么我们将作为结果的引用传给一个BufferedReader构造器。(BufferedReader也提供readLine()方法,所以这是我们的最终对象和进行读取的接口)
BufferedReader in = new BufferedReader(new FileReader("IOStreamDemo.java"));
String s, s2 = new String();
while ((s = in.readLine()) != null)
s2 += s + "\n";
in.close();
1.2 用System.in读取来自控制台的输入。System.in 是一个InputStream, 而BufferedReader需要的是Reader参数,因此引入InputStreamReader来进行转换(适配器模式)
BufferedReader stdin = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("Enter a line");
System.out.println(stdin.readLine());
2. 从内存读入。用字符串创建一个StringReader。
// 2. Input from memory
StringReader in2 = new StringReader(s2);
int c;
while((c = in2.read()) != -1)
System.out.print((char)c);
3. 格式化的内存输入
如果要读取格式化数据(JDK5.0 Documentation: read primitive Java data types),我们要用到DataInputStream, 它是一个面向字节的I/O类
DataInputStream in3 = new DataInputStream(new ByteArrayInputStream(s2.getBytes()));
while(true)
System.out.print((char)in3.readByte());
4. 文件输出
首先创建一个与指定文件连接的FileWriter.通常会用BufferedWriter将其包装起来用以缓冲输出。然后为了格式化把它转换成PrintWriter.
BufferedReader in4 = new BufferedReader(new StringReader(s2));
PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("D:\\IODemo.txt")));
int lineCount = 1;
while(((s = in4.readLine()) != null))
out1.println(lineCount++ + ": " + s);
out1.close();
为了序列化一个对象,首先要创建某些OutputSteam对象,然后将其封装在一个ObjectOutputStream对象内。这时,只需调用writeObject()即可将对象序列化,并将其发送给OutputStream。要将一个序列重组为一个对象,需要将一个InputStream封装在ObjectInputStream内,然后调用readObject()。
分享到:
相关推荐
Java I/O类库是Java平台的核心部分,它提供了丰富的类用于处理输入和输出操作。这个系统包括了多种类,从简单的字节流到复杂的字符流,以及一系列的装饰器类,用于扩展和增强原始流的功能。 Java 1.0 和 1.1 中的I/...
本篇文章将深入探讨Java I/O系统的核心概念、主要类库以及常见使用场景。 首先,Java I/O系统的基础是`java.io`包,它提供了许多用于处理不同类型的流的类。这些流分为字符流和字节流两大类。字符流处理的是Unicode...
Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上运行...
在使用 Java I/O 系统时,需要了解 Java I/O 系统的类库结构和设计理念,了解每个类的功能和使用方法,并了解 Java I/O 系统的历史发展历程。这将有助于我们更好地理解和使用 Java I/O 系统,提高我们的编程效率和...
Java的I/O类库还区分了字节流(Byte Stream)和字符流(Char Stream)。字节流处理的数据单位是字节,适用于所有类型的数据,如图像、音频等非文本数据。字符流基于Unicode编码,更适合处理文本数据。常见的字节流类...
本文将详细介绍Java I/O类库的基本架构,包括其分类、核心接口以及类层次结构,帮助读者更好地理解和应用Java的I/O操作。 #### 二、Java I/O类库分类 Java I/O类库大致可以分为以下四类: 1. **基于字节操作的I/O...
Java提供了丰富的I/O类库,包括字节流(Byte Stream)和字符流(Character Stream)。字节流处理原始的8位字节数据,而字符流则以Unicode字符为单位进行操作,更适用于文本处理。 1. 字节流: - InputStream和...
Java I/O实现是Java编程中一个重要的部分,它提供了丰富的类库用于处理数据的输入和输出。I/O流在Java中被设计为一种流式数据处理模型,允许程序从数据源读取或向目标写入数据。本文将对Java I/O流的基本概念、分类...
Java NIO(New I/O)类库是Java 1.4版本以后引入的新一代I/O机制,相比传统的I/O机制,NIO提供了高效、异步、多路复用的I/O操作模式。Selector机制是NIO类库中的一种核心机制,用于实现多个异步I/O操作的集中管理。 ...
InputStream 和 OutputStream 是 Java I/O 类库中的基本类,InputStream 的作用是用来表示那些从不同数据源产生输入的类。这些数据源包括:字节数组;String 对象;文件;“管道”,工作方式与实际管道相似,即从...
- **深入理解 I/O 类库**: 除了基础的文件操作之外,Java I/O 类库还提供了许多高级功能,如 NIO、缓冲区管理、通道等,这些都是提高程序性能的关键技术。 - **兼容性和性能考量**: 在选择使用旧版 I/O 类库还是新版...
7. **java.nio**:新I/O(New IO)包,提供了非阻塞I/O操作,提高了I/O性能。 8. **java.security**:包含安全相关的类和接口,如加密、证书、访问控制等。 9. **javax.xml**:处理XML文档的API,如DOM、SAX解析器...
在 Java 1.0 版本中,Java I/O 系统的类库面向 byte,但是在后来的版本中,Java 又对其 I/O 类库作了重大的修改,补充了面向 Unicode 字符的类库。为了提高性能,完善功能,JDK 1.4 又加了一个 nio(意思是"new I/O...
Java I/O是指传统的I/O操作,涉及经典的I/O类库,如File、RandomAccessFile以及各种流类(stream classes)和相关类型,还有读者/写者类(reader/writer classes)。这部分API专注于基于字节的数据处理和字符数据...
Java I/O 系统设计和使用 Java I/O 系统是 Java 编程语言中的一项重要组件,对于编程语言的设计者来...这只是 Java I/O 系统的一部分,为了全面了解 Java 的 I/O 类库,需要学习大量的类,并了解 I/O 类库的演化历史。
Java 类库的设计者们用“创建很多类”的办法来解决这个问题,导致 Java I/O 系统的类实在是太多了,以至于初看起来会把人吓着。但是,这种设计实际上是限制了类的爆炸性增长。 Java I/O 系统的设计者们面临着很多...
每个 PDF 文件都可能是一个专题,比如 `AbstractList.pdf` 可能详细介绍了 `AbstractList` 类的设计和使用,而 `java.io.pdf` 可能全面讲解了 Java I/O 流的用法和最佳实践。通过学习这些文档,开发者可以深入理解 ...
3. **I/O流**:Java的I/O流模型允许程序进行数据的读写,包括字节流、字符流、对象序列化等。InputStream和OutputStream是所有字节流的基类,而Reader和Writer则是字符流的基类。 4. **多线程**:Java2类库支持多...
以上知识点覆盖了 Java I/O 的基础概念以及核心类库的使用方法,对于理解 Java 如何处理文件和网络中的数据流提供了全面的视角。通过这些知识点的学习,开发者能够更加熟练地使用 Java 进行各种 I/O 相关的操作。