Java中IO技术的出现是为了解决什么问题?
在这之前,我们与程序的交互方式都是通过在控制台输入,或在程序中写死了数据,来确保程序运行时所需要的数据的有效性。
然而,在现实中,并非如此。
例如,我们需要对硬盘上的一个文件进行操作(文本文件 or 音频 or 视频文件) 或者是将 程序运算后所得到的结果保存到硬盘上或者是 从网络上读取数据,将网络上的数据保存到我们自己的电脑上或者是 将我们电脑里的东西 上传到网上 等等 诸如此类的情况。那么,之前的程序就无能为力了,在Java中的 输入输出流技术为了解决这个问题,应运而生。
首先我们先来搞清楚两个概念:
1. 什么是流?
a) 流是在计算机的输入,输出操作中流动的数据序列。
2. 什么是输入流 or 输出流?
a) 输入流,代表从外设流入计算机的数据序列。它是从键盘,磁盘文件流向内存而后被程序使用的数据流,为程序提供输入信息。
b) 输出流,代表从计算机流向外设的数据序列。从程序流向显示器,打印机,磁盘文件的数据流,实现程序的输出功能。
3. 流式输入,输出的特点是:
数据的获取和发送均按照数据序列的顺序进行,每一个数据都必须等待排在它前面的数据读入或送出之后才能被读写,每次操作处理的都是序列中剩余的未读写数据的第一个,而不能随意选择输入输出的位置。序列中的数据既可以是未经加工的原始二进制数据,也可以是按照一定编码处理后符合某种格式规定的特定数据(如,字符数据)
而,Java的I/O 技术正是,一种流式技术。它一共分为两种:
1. 字节流 —— 用于操作原始的二进制数据。(如音频,视频,等等)
2. 字符流 —— 用于操作经过编码表处理后字节数据。只能用来进行文字的处理。
字符流的由来:
先从ASCII说起,ASCII里面记录的全是老美使用的文字和 数字之间的对应关系。为了让计算机能够识别中文,因此我们造了这样的一张码表叫做:GB2312 or GBK 。
同样的其他国家也在建立自己的文字和数字的对应关系。
但是计算机却是统一的,那么该如何让计算机识别各个国家的文字呢?为了解决这个问题,国际化标准组织,就建立一张码表——Unicode 。 它能够识别各个国家的文字,Java底层使用的就是这张码表。于是,能识别中文的 码表 就有两种—— GBK 和 Unicode。
举例来说,“你好”在 GBK中有对应的数字,当然了在Unicode中也有对应的数字。但是两张码表中表示同样的文字——“你好”时,使用的数字却是不一样的。如果用GBK来封装,用Unicode来解析,就会发生错误。
然而,流是处理数据的,中文作为一种数据,如果这种数据是通过GBK编制后产生的,当这种数据 被 Unicode解析后,就会出问题。为了处理文字方便,就有了字符流——其实质是:将字节流和编码表进行了封装!专门用来处理文字数据的技术
相关推荐
Java IO应届生培训讲义是一份面向刚毕业的大学生进行Java IO相关知识的培训资料,它涵盖了Java IO的基础知识、不同的IO模型以及Java中的BIO、NIO和AIO高级IO类库。下面详细解释这些知识点: 1. 用户空间和内核空间 ...
Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的重要部分,涉及文件、网络、内存等数据传输。本文将深入探讨Java IO的基本概念、分类、选择流的策略以及常用的流类型。 首先,File类是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教程,java IO...
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了一整套类库,使得开发者能够有效地读取和写入数据到不同的源和目标,如文件、网络、内存缓冲区等。Java IO体系结构设计得...
Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的基础框架,它提供了丰富的类库,使得程序能够与各种设备、文件、网络进行数据交互。然而,传统的IO模型在处理大量并发连接时表现出效率较低的问题,...
《Java IO.chm》是一个关于Java输入/输出(IO)技术的压缩文件,其中包含了丰富的资料,适合开发者深入理解和学习Java IO系统。这篇详细的总结将围绕Java IO体系结构、核心类、流的概念、缓冲区、转换流、字符集、...
Java IO 详解 Java IO(Input/Output)是 Java 语言中用于处理输入输出操作的类库,提供了大量的类和方法来实现文件、网络、字节流等方面的输入输出操作。下面对 Java IO 中的重要知识点进行详细说明。 一、File ...
Java IO处理类是Java平台中用于输入输出操作的核心部分,它允许程序与各种类型的输入源(如文件、网络连接)以及输出目标(如显示器、打印机)进行交互。本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、...
### Java IO操作详解 #### 一、Java IO基础概念 Java IO(Input/Output)是Java编程语言中处理输入输出的基础框架。它提供了多种类和接口来处理不同类型的输入输出需求,包括文件读写、网络通信等。Java IO体系...
Java IO编程是Java平台中处理输入输出操作的重要组成部分,它提供了丰富的类库,使得开发者能够高效地进行数据的读取、写入、流的管理和转换。在这个集合中,我们主要探讨的是Java IO在文件读写方面的实践应用。 一...
Java IO流技术是Java平台中用于处理输入输出的重要机制,其核心在于数据的传输,从数据源到程序或从程序到目的地。在Java中,流分为两大类:输入流(InputStream、Reader)和输出流(OutputStream、Writer)。输入流...
在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。它提供了丰富的类库,允许程序员在程序之间传输数据,包括从文件、网络、内存缓冲区到其他程序或系统组件。Java IO API是Java平台的...
JavaIO流详解归纳 Java 的核心库 java.io 提供了全面的 IO 接口,包括文件读写、标准设备输出等。Java 中 IO 是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。在项目开发中,IO 是非常...
Java IO操作是Java编程中的重要组成部分,主要用于处理输入和输出数据。在Java中,IO操作涉及到文件、字节流、字符流以及管道流等多个概念。下面将详细解释这些知识点。 首先,我们来看“文件类”。在Java中,`java...
Java IO 与 装饰模式 在Java编程中,输入输出(IO)处理是程序设计中的重要组成部分,用于读取、写入和处理数据。Java IO库提供了一整套类来支持各种类型的输入输出操作,包括文件、网络、内存等。而装饰模式是一种...
2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。
Java IO流是Java平台中的重要组成部分,用于处理输入和输出操作。它允许程序与外部设备如硬盘、网络、内存等进行数据传输。IO流的概念基于流(Stream)模型,数据以字节或字符序列的形式流动。Java IO库提供了丰富的...
Java IO流是Java编程语言中处理输入输出操作的重要部分,尤其在数据传输、文件读写等方面发挥着核心作用。本文将深入探讨Java IO流的基本概念、类型以及它们在实际开发中的应用。 首先,理解IO流的基本概念至关重要...
Java IO(Input/Output)是Java平台中处理输入与输出数据的核心部分,它提供了丰富的类库,使得开发者能够高效地进行文件、网络、内存以及其他I/O流的操作。本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在...