`
wede
  • 浏览: 728 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java 字节流(OutputStream、InputStream)与字符流(Writer、Reader) 学习

阅读更多
首先,如果需要针对于文件的内容进行处理操作,则必须使用两类数据流:
· 字节流:OutputStream、InputStream;
· 字符流:Writer、Reader。

字节流是直接进行操作,而字符流需要经过处理。所有保存在磁盘上或者网络传输的数据都是字节,而所有的字节重新在内存之中整合在一起,就是字符。 但是不管使用的是字节流还是字符流,其基本的操作流程都是类似的,以文件操作为例:
· 通过File类设置一个要操作的文件路径;
· 通过字节流或字符流的子类为父类对象实例化;
· 进行数据的读、写处理操作; · 关闭流。

2.1、字节输出流:OutputStream
字节输出流采用的是byte数据类进行的操作处理,主要可以进行二进制数据的操作。如果要进行字节数据的输出操作使用OutputStream类完成。

2.2、字节输入流:InputStream
现在已经可以通过OutputStream实现了数据的输出操作,但是也同样可以使用程序进行数据的读取,而读取的操作可以使用InputStream类完成。首先来观察InputStream类的定义。

2.3、字符输出流:Writer
Writer是专门负责字符(char、String)输出的操作,
2.4、字符输入流:Reader
Reader属于字符的输入流抽象类,可以使用FileReader实现文件的读取处理,在Reader里面如果要进行数据的读取使用如下方法完成:public int read(char[] cbuf) throws IOException。

2.5、字节流与字符流的区别
清楚了字节流和字符流的概念之后必须面对的问题在于:开发之中使用那种数据流,以及两种数据流的区别是什么? 一句话总结:如果描述中文处理一定使用字符流,如果处理数据传输,那么使用字节流。 在使用字节流进行处理的时候不会使用到内存处理,而直接与原始数据产生交互。在使用字符流处理的时候如果没有进行关闭处理,那么所有的数据都只是会保存在缓冲区之中,而当进行了关闭处理之后会强制性的将缓冲区中的数据清空。如果现在在使用字符流的时候不希望进行关闭,那么也可以使用flush()强制清空:public abstract void flush() throws IOException。
分享到:
评论

相关推荐

    Java字节流与字符流的介绍.pdf

    Java 字节流与字符流的介绍 Java 中的流操作可以分为两种:字节流和字符流。字节流是指以 byte 为单位进行读写操作的流,而字符流是指以 char 为单位进行读写操作的流。 字节流的介绍 字节流的所有读操作都继承自...

    JAVA 字符流与字节流

    在Java编程语言中,输入/输出(I/O)操作是处理数据流的关键部分,而字符流与字节流则是实现这些操作的两种基本方式。理解它们的区别和应用场景对于任何Java开发者来说都是至关重要的。 ### 字节流 字节流是最基本...

    java 文件存储 Inputstream outputstream reader writer的用法

    `InputStream`、`OutputStream`、`Reader`和`Writer`是Java IO流的基础类,它们提供了读写文件的基本接口。本篇文章将深入讲解这些类的用法,并提供实际的代码示例,帮助初学者更好地理解和应用。 1. `InputStream`...

    Java字符流和字节流

    在Java中,所有字节流类都是`java.io.InputStream`或`java.io.OutputStream`的子类。这两个类提供了基本的读写操作方法,例如`read()`和`write()`。 **1. 文件输出流(FileOutputStream)** - `FileOutputStream`类...

    java字节流和字符流

    与字节流相对应,字符流由`Reader`和`Writer`类组成。字符流处理的是Unicode字符,因此每个字符通常占用两个字节。`Reader`是所有字符输入流的基类,`Writer`是所有字符输出流的基类。它们提供读写字符的方法,如`...

    将输出流OutputStream转化为输入流InputStream的方法

    在Java编程中,有时我们可能需要将一个已经写入数据的`OutputStream`转换为`InputStream`,以便重新读取这些数据。这种情况通常出现在临时存储或处理数据时,例如在网络传输或者存储到内存中的场景。本篇文章将深入...

    Java IO 字节流 字符流

    Java IO系统分为两大类:字节流和字符流。字节流主要用于处理任何类型的原始数据,如图片、音频文件或者二进制文件,而字符流则专注于处理基于文本的数据。本文将深入探讨这两类流的原理、用途以及它们之间的关联。 ...

    java字节流和字符流[整理].pdf

    转换流:在字节流和字符流之间,Java提供了解决两者不兼容问题的转换流,即InputStreamReader和OutputStreamWriter。InputStreamReader是字节输入流到字符输入流的桥梁,而OutputStreamWriter则是字节输出流到字符...

    Java字节流 .pdf

    Java字节流是一种用于处理字节数据的流处理机制,在Java中,字节流不包含边界数据的连续流,字节流是由字节组成的,Java里字符由两个字节组成。字节流是最基本的,它是按字节来处理二进制数据。 字节流基类有:字节...

    java.io.Reader 和 java.io.InputStream 的区别

    `java.io.Reader`和`java.io.InputStream`是Java标准库中处理输入数据的核心类,它们分别针对字符流和字节流提供了基础的支持。 #### `java.io.Reader`:字符流的读取器 `java.io.Reader`是所有字符输入流的超类。...

    Java IO字符流和字节流

    ### Java IO字符流和字节流详解 #### 一、引言 在Java编程中,输入输出(简称IO)操作是十分重要的一个方面。通过IO操作,我们可以读取文件、网络数据、用户输入等,也可以将数据写入到文件、网络、控制台等。Java...

    Java 字节流、字符流题目.docx

    Java的输入和输出主要涉及到流的...总的来说,这个实验旨在帮助学习者理解Java中字节流和字符流的基本概念和用法,包括文件的读写、字符与字节的转换以及流的层次结构。通过实践这些练习,可以深入掌握Java的I/O操作。

    字节流字符流

    通过阅读和理解这些代码,我们可以深入学习如何在Java中运用字节流和字符流进行文件操作,以及如何在需要时进行两者之间的转换。 总的来说,字节流和字符流是Java I/O系统的重要组成部分,理解它们的工作原理和应用...

    java字节流和字符流[借鉴].pdf

    与字节流一样,字符流也有缓冲的概念,可以使用 BufferedReader 和 BufferedWriter 对性能进行优化,减少与底层 I/O 操作的交互次数。 总结: Java 的 IO 流系统是基于流的,提供了对数据的读写操作。字节流适用于...

    Java字节流数据逐行读取(readLine)

    然而,`readLine()`方法通常与字符流Reader类关联,而不是字节流InputStream类。因此,要使用字节流实现数据逐行读取,我们需要结合`BufferedReader`和`InputStreamReader`。 首先,理解`readLine()`方法。它是`...

    Java基础11-(字节流、字符流)

    在学习Java基础时,掌握字节流和字符流是必不可少的。字节流主要包括OutputStream和InputStream两个基类,它们分别是所有字节输出流和输入流的超类。字符流则包括Writer和Reader两个基类,用于实现字符数据的读写。 ...

    Java 字节流、字符流题目.pdf

    字节流分为输入流和输出流,Java中最基础的字节流类是`InputStream`和`OutputStream`。字节流通常用于处理二进制数据,如图片、音频、视频等。在本实验中,有以下几个练习涉及到字节流: 1. 练习一:通过`...

    IO流学习(字节流 字符流 文本流)!

    字节流是最基础的IO流类型,分为输入字节流(InputStream)和输出字节流(OutputStream)。它们处理的数据单位是字节,适用于所有类型的数据,包括图片、音频、视频等二进制数据。例如,FileInputStream和...

    JAVA_字节流和字符流

    在Java编程语言中,字节流(Byte Stream)和字符流(Character Stream)是处理输入输出数据的两种基本方式。字节流主要用于处理任何类型的二进制数据,如图片、音频、视频等,而字符流则专为处理基于Unicode编码的...

Global site tag (gtag.js) - Google Analytics