`
lovelydog
  • 浏览: 92034 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java IO(1)

    博客分类:
  • java
 
阅读更多

最近写代码时,写到很多和IO相关的东西,由于每次写的时候都是编翻书边学,顺便在网上找点现成的就直接用了。所以每次要写的时候都要废点周折,甚至写完了之后对于IO还不是很清楚。所以决定把java IO这部分好好复习下。

这一篇就写点刚看的IO基础东西吧。

java的API文档里,对java.io包的描述是:Provides for system input and output through data streams, serialization and the file system.

 

那么就先说下什么是“流”:流是java内存中的一组有序数据序列。java将数据从源(文件、内存、键盘、网络等)读入到内存中,形成流。然后还可以将这些流写入到另外的目的地(同样是文件、内存、控制台、网络等)。所以说,java的IO操作都是基于流来完成的。

 

流可以分为输入流/输出流、字节流/字符流,这些比较简单,就不多说了。另外,按照功能的不同,还可以分为节点流/处理流:节点流是指从一个源直接读写数据的流(这个流没有经过装饰),比如FileInputStream就是一个直接从文件读取字节的流,这就是一个节点流;处理流可以对节点流进行封装,比如BufferedInputStream就可以对FileInputStream进行封装,然后就具有了缓冲功能。

举个例子,比如我们要从文件中读取数据,可以用FileInputStream这么写

FileInputStream fis = new FileInputStream("text.txt");

但是直接这样读取,只能一个字节一个字节的读,如果想给这个输入流加个缓冲,将数据先全部放入到缓冲区中,可以这么写:

BufferedInputStream bis = new BufferedInputStream(new FileInputStream("text.txt"));

甚至可以给这一层再加上一个封装

DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream("text.txt")));

DataInputStream可以用来读取java原生的数据(具体是啥也不清楚,等下一片再讲)。

 

所有使用处理流封装节点流的功能都使用了decorator设计模式(其实java.io就是使用decorator模式组织的),decorator模式的目的是在不改变任何原有的类的基础上,添加新的功能。具体Decorator设计模式是什么样子的,接下来的篇幅会详细的讲解。

 

今天就这样,梳理下基本概念,接下来会针对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教程,java IO教程,java IO...

    Java IO应届生培训讲义

    Java IO应届生培训讲义是一份面向刚毕业的大学生进行Java IO相关知识的培训资料,它涵盖了Java IO的基础知识、不同的IO模型以及Java中的BIO、NIO和AIO高级IO类库。下面详细解释这些知识点: 1. 用户空间和内核空间 ...

    java IO.chm

    Java IO中的Charset类提供了处理字符编码的工具,例如ISO-8859-1、UTF-8等。开发者可以通过Charset类进行字符编码和解码,确保数据在不同的系统和环境中正确传输。 六、文件操作 File类是Java IO中处理文件和目录的...

    Java IO知识点

    Java IO(Input/Output)是Java编程语言中用于处理输入输出操作的重要部分,涉及文件、网络、内存等数据传输。本文将深入探讨Java IO的基本概念、分类、选择流的策略以及常用的流类型。 首先,File类是Java IO的...

    Java教程之javaIO详解

    Java IO 详解 Java IO(Input/Output)是 Java 语言中用于处理输入输出操作的类库,提供了大量的类和方法来实现文件、网络、字节流等方面的输入输出操作。下面对 Java IO 中的重要知识点进行详细说明。 一、File ...

    Java IO_NIO

    1. 阻塞与非阻塞:Java IO是阻塞的,而NIO是非阻塞的,可以在没有数据可读时不做等待,而是继续处理其他任务。 2. 多路复用:NIO的选择器允许单线程管理多个通道,而传统的IO需要为每个连接创建一个新的线程,导致...

    java io 结构图

    文件名"dd16b88f-d8ed-3378-b8a6-1ba319c0ea27.gif"和"eximg.jpeg"可能代表了这个Java IO结构图的图片文件,可以帮助读者直观地理解这个复杂的体系。 总之,Java IO系统为开发者提供了强大而灵活的工具来处理输入...

    java IO流精讲

    IO 简介,只看这篇,IO全部搞定,对于初学者来说,不可多得

    java io流学习笔记1

    Java IO流是Java编程语言中处理输入输出操作的重要部分,尤其在数据传输、文件读写等方面发挥着核心作用。本文将深入探讨Java IO流的基本概念、类型以及它们在实际开发中的应用。 首先,理解IO流的基本概念至关重要...

    Java IO 使用例

    在“JavaIODemo”这个示例中,可能会包含以上提到的一些或全部Java IO操作的代码实例,通过这些实例,我们可以学习如何在实际项目中应用Java IO API。实践是掌握Java IO的最佳方式,通过对这些示例的分析和运行,...

    java io.pdf

    1. **流(Streams)**:Java IO的核心概念是流,它们代表数据的源和目的地。流可以是字节流或字符流,分为输入流和输出流。字节流处理单个字节的数据,而字符流处理Unicode字符,如UTF-8编码。 2. **节点流(Nodal ...

    java IO操作详解.pdf

    ### Java IO操作详解 #### 一、Java IO基础概念 Java IO(Input/Output)是Java编程语言中处理输入输出的基础框架。它提供了多种类和接口来处理不同类型的输入输出需求,包括文件读写、网络通信等。Java IO体系...

    Java IO处理类的汇总

    Java IO处理类是Java平台中用于输入输出操作的核心部分,它允许程序与各种类型的输入源(如文件、网络连接)以及输出目标(如显示器、打印机)进行交互。本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、...

    java小项目练习IO实现

    在Java编程领域,IO(Input/Output)技术是不可或缺的一部分,尤其在处理数据持久化、文件操作、网络通信等方面发挥着重要作用。在这个“java小项目练习IO实现”中,我们将探讨如何利用Java的IO流来实现本地数据的...

    JavaIO流详解归纳.pdf

    JavaIO流详解归纳 Java 的核心库 java.io 提供了全面的 IO 接口,包括文件读写、标准设备输出等。Java 中 IO 是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。在项目开发中,IO 是非常...

    Java IO 编程集合

    1. InputStream与OutputStream:这是Java IO体系中的两大基本接口,分别用于数据的读取和写入。InputStream代表字节输入流,OutputStream代表字节输出流。它们是所有字节流类的基类,包括文件读写的相关类。 二、...

    java io处理 方法

    java io处理 方法java io处理 方法

    IO流 javaio java 流

    Java中的IO流是Java核心库的重要组成部分,它用于在不同数据源之间传输数据。Java IO流分为两大类:字符流(Character Stream)和字节流(Byte Stream)。字符流处理单个字符,而字节流处理8位的字节序列。它们又...

    java IO流精讲 JAVA IO流实例开发

    Java IO流是Java平台中用于处理输入/输出操作的核心组件,它允许程序与各种数据源(如文件、网络连接、内存缓冲区等)进行交互。Java IO流的精讲涵盖了许多概念和技术,包括流的分类、流的方向、缓冲区的使用、字符...

    JAVA IO流技术

    1. 数据源(Data Source):数据源可以是各种媒介,包括文件、数据库、内存、网络连接以及IO设备。在Java IO中,我们需要通过流对象与这些数据源进行交互。 2. 流的概念:流(Stream)是一个抽象概念,代表一连串...

Global site tag (gtag.js) - Google Analytics