美文网首页大数据开发
大数据编程:Java IO流基础知识点讲解

大数据编程:Java IO流基础知识点讲解

作者: 成都加米谷大数据 | 来源:发表于2021-06-24 17:46 被阅读0次

作为大数据开发的主力语言,Java是大数据学习当中必备的基础,而Java当中的很多重要知识概念,在学习当中也是难点。今天的大数据编程学习分享,我们主要来讲讲Java当中的IO流的部分,基础知识点的掌握,尤为重要。

一、什么是Java IO流?

Java IO流是既可以从中读取,也可以写入到其中的数据流。流通常会与数据源、数据流向目的地相关联,比如文件、网络等等。

流和数组不一样,不能通过索引读写数据。在流中,你也不能像数组那样前后移动读取数据,除非使用RandomAccessFile处理文件。流仅仅只是一个连续的数据流。

某些类似PushbackInputStream流的实现允许你将数据重新推回到流中,以便重新读取。然而你只能把有限的数据推回流中,并且你不能像操作数组那样随意读取数据。流中的数据只能够顺序访问。

Java IO流通常是基于字节或者基于字符的。字节流通常以“stream”命名,比如InputStream和OutputStream。除了DataInputStream和DataOutputStream还能够读写int,long,float和double类型的值以外,其他流在一个操作时间内只能读取或者写入一个原始字节。

字符流通常以“Reader”或者“Writer”命名。字符流能够读写字符(比如Latin1或者Unicode字符)。

InputStream

java.io.InputStream类是所有Java IO输入流的基类。如果你正在开发一个从流中读取数据的组件,请尝试用InputStream替代任何它的子类(比如FileInputStream)进行开发。这么做能够让你的代码兼容任何类型而非某种确定类型的输入流。

组合流

你可以将流整合起来以便实现更高级的输入和输出操作。比如,一次读取一个字节是很慢的,所以可以从磁盘中一次读取一大块数据,然后从读到的数据块中获取字节。为了实现缓冲,可以把InputStream包装到BufferedInputStream中。

代码示例

InputStream input=new BufferedInputStream(new FileInputStream("c:\data\input-file.txt"));

缓冲同样可以应用到OutputStream中。你可以实现将大块数据批量地写入到磁盘(或者相应的流)中,这个功能由BufferedOutputStream实现。

缓冲只是通过流整合实现的其中一个效果。你可以把InputStream包装到PushbackInputStream中,之后可以将读取过的数据推回到流中重新读取,在解析过程中有时候这样做很方便。或者,你可以将两个InputStream整合成一个SequenceInputStream。

将不同的流整合到一个链中,可以实现更多种高级操作。通过编写包装了标准流的类,可以实现你想要的效果和过滤器。

二、IO文件

在Java应用程序中,文件是一种常用的数据源或者存储数据的媒介。

通过Java IO读文件

如果你需要在不同端之间读取文件,你可以根据该文件是二进制文件还是文本文件来选择使用FileInputStream或者FileReader。

这两个类允许你从文件开始到文件末尾一次读取一个字节或者字符,或者将读取到的字节写入到字节数组或者字符数组。你不必一次性读取整个文件,相反你可以按顺序地读取文件中的字节和字符。

如果你需要跳跃式地读取文件其中的某些部分,可以使用RandomAccessFile。

通过Java IO写文件

如果你需要在不同端之间进行文件的写入,你可以根据你要写入的数据是二进制型数据还是字符型数据选用FileOutputStream或者FileWriter。

你可以一次写入一个字节或者字符到文件中,也可以直接写入一个字节数组或者字符数据。数据按照写入的顺序存储在文件当中。

通过Java IO随机存取文件

正如我所提到的,你可以通过RandomAccessFile对文件进行随机存取。

随机存取并不意味着你可以在真正随机的位置进行读写操作,它只是意味着你可以跳过文件中某些部分进行操作,并且支持同时读写,不要求特定的存取顺序。

这使得RandomAccessFile可以覆盖一个文件的某些部分、或者追加内容到它的末尾、或者删除它的某些内容,当然它也可以从文件的任何位置开始读取文件。

三、字符流和字节流

Java IO的Reader和Writer除了基于字符之外,其他方面都与InputStream和OutputStream非常类似。他们被用于读写文本。InputStream和OutputStream是基于字节的。

Reader Reader类是Java IO中所有Reader的基类。子类包括BufferedReader,PushbackReader,InputStreamReader,StringReader和其他Reader。

Writer Writer类是Java IO中所有Writer的基类。子类包括BufferedWriter和PrintWriter等等。

下面是一个简单的Java IO Reader的例子:

Reader reader=new FileReader("c:\\data\\myfile.txt");

int data=reader.read();

while(data!=-1){

char dataChar=(char)data;

data=reader.read();

}

你通常会使用Reader的子类,而不会直接使用Reader。Reader的子类包括InputStreamReader,CharArrayReader,FileReader等等。

关于大数据编程学习,Java IO流基础知识点,以上就为大家做了一个简单的介绍了。Java作为大数据开发的重要基础,基础打得越扎实,在后续的学习当中也会受益。

相关文章

  • 大数据编程:Java IO流基础知识点讲解

    作为大数据开发的主力语言,Java是大数据学习当中必备的基础,而Java当中的很多重要知识概念,在学习当中也是难点...

  • JAVA技术知识体系

    java基础 java虚拟机 集合框架 网络编程-Socket 并发编程-Thread io 数据库操作-JDBC...

  • Android知识学习

    Java知识储备 本知识点不做重点讲解:对于有基础的同学推荐看《Java编程思想》,巩固基础,查漏补全,了解并熟悉...

  • 我是如何自学 Android 的?

    1. Java知识储备 本知识点不做重点讲解: 对于有基础的同学推荐看《Java编程思想》,巩固基础,查漏补全,了...

  • 如何自学Android

    1. Java知识储备 本知识点不做重点讲解:对于有基础的同学推荐看《Java编程思想》,巩固基础,查漏补全,了解...

  • 面试题之IO&并发编程

    什么是IO?Java中IO是以流为基础进行数据的输入输出的,所有数据被串行化写入输出流。简单来说就是java通过i...

  • Android学习资料

    Java知识储备本知识点不做重点讲解:对于有基础的同学推荐看《Java编程思想》,巩固基础,查漏补全,了解并熟悉更...

  • 技术博客汇总

    关于我的博客大汇总整理 目录介绍 Java博客大汇总01.Java基础02.面向对象03.数据结构04.IO流知识...

  • 如何自学Android

    如何自学Android 1. Java知识储备 本知识点不做重点讲解:对于有基础的同学推荐看《Java编程思想》,...

  • Java IO流详解(二)——IO流的框架体系

    一、IO流的概念 Java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在Java中把不同...

网友评论

    本文标题:大数据编程:Java IO流基础知识点讲解

    本文链接:https://www.haomeiwen.com/subject/uflgyltx.html