解析大数据编程教程:JavaStream、File及IO

开课吧开课吧锤锤2021-07-15 10:30

Java技术系统维护了自己世界第一编程语言的地位,与其他语言竞争从来不在于语法和类库的先进性和易用性,而在于其庞大的用户群和极其成熟的软件生态,难以撼动。  

大数据编程教程

在Java中的Java.io包是什么?其中的流又是什么?而它们在Java中又有着什么样的功能?不知道?别担心,今天小编将为大家带来大数据编程入门:JavaStream、File及IO这篇文章。  

一、Java流(Stream)、文件(File)和IO的概念  

Java.io包几乎包含了操作输入和输出所需的所有类,所有这些流类都表示输入源和输出目标。  

java.io包中的流支持多种格式,如基本类型、对象、本地化字符集等。  

一个流可以理解为一个数据的序列,输入流从一个源读取数据,输出流将数据写入一个目标。  

Java为I/O提供了强大而灵活的支持,使其在文件传输和网络编程中得到更广泛的应用。  

二、读取控制台输入  

Java的控制台输入由System.in完成。  

要获取一个绑定到控制台的字符流,可以在BufferedReader对象中包装system.in以创建字符流。  

以下是创建BufferedReader的基本语法:  

BufferedReaderbr=newBufferedReader(new  

InputStreamReader(System.in));  

创建BufferedReader对象之后,我们可以使用read()方法从控制台读取一个字符,或者使用readLine()方法读取一个字符串。  

三、从控制台读取多字输入  

要从BufferedReader对象读取字符,要使用read()方法,其语法如下:  

intread()throwsIOException  

每次调用read()方法时,它都从输入流中读取一个字符并将其作为整数值返回,当流结束时返回-1,此方法引发IOException。  

以下的示例程序中使用了read()方法从控制台不断读取字符直到用户输入q。  

大数据编程教程

运行结果:  大数据编程入门:JavaStream、File及IO

四、从控制台读取字符串  

从标准输入读取字符串需要BufferedReader的readLine()方法。  

其一般格式如下:  

StringreadLine()throwsIOException  

以下的示例程序读取和显示字符行直到你输入了单词"end"。  大数据编程入门:JavaStream、File及IO

运行结果:  大数据编程入门:JavaStream、File及IO

五、控制台输入  

控制台的输出由print()和println()完成,这些方法由printstream和system类定义,Out是对类对象的引用。  

PrintStream继承OutputStream类并实现write()方法,这样,write()还可以使用控制台来编写操作。  

printstream定义write()的最简单格式如下:  

voidwrite(intbyteval)  

该方法将byteval的低八位字节写到流中。  

示例:  

以下的示例程序中使用write()把字符“A”和紧跟着的换行输出到屏幕:  大数据编程入门:JavaStream、File及IO大数据编程入门:JavaStream、File及IO

运行结果:  大数据编程入门:JavaStream、File及IO

六、读写文件  

如前所述,流被定义为数据序列,输入流用于从源读取数据,输出流用于将数据写入目标。  

下面是描述输入和输出流的类层次结构图:  

  大数据编程入门:JavaStream、File及IO

七、FileInputStream  

该流用于从文件读取数据,并且可以使用关键字new创建其对象。  

创建对象可以有几种构造方法。  

可以使用字符串类型文件名创建输入流对象来读取文件:  

InputStreamf=newFileInputStream("C:/java/hello");  

还可以使用文件对象创建输入流对象来读取文件,我们首先需要使用file()方法创建一个文件对象:  

Filef=newFile("C:/java/hello");  

InputStreamin=newFileInputStream(f);  

创建InputStream对象后,可以使用以下方法读取流或执行其他流操作。  

方法

描述

public void close() throws IOException{}

关闭文件输入流并释放与该流关联的所有系统资源,抛出IOException异常。

protected void finalize()throws IOException {}

此方法清除与文件的连接,确保在不再引用文件输入流时调用close方法,抛出IOException异常。

public int read(int r)throws IOException{}

此方法从InputStream对象读取指定的数据字节,返回整数值。返回数据的下一个字节,如果已到达结尾,则返回-1。

public int read(byte[] r) throws IOException{}

这个方法从输入流中读取r.length的字节。返回读取的字节数。如果是文件的结尾,则返回-1。

public int available() throws IOException{}

返回在此输入流上调用的下一个方法可以不阻塞地从此输入流读取的字节数,返回整数值。

八、FileOutputStream  

此类用于创建文件并向其中写入数据。  

如果在流打开文件进行输出之前目标文件不存在,则流将创建该文件。  

有两种构造方法可用于创建FileOutputStream对象。  

使用字符串类型文件名创建输出流对象:  

OutputStreamf=newFileOutputStream("C:/java/hello")  

还可以使用文件对象创建输出流来写入文件,我们首先需要使用file()方法创建一个文件对象:  

Filef=newFile("C:/java/hello");  

OutputStreamfOut=newFileOutputStream(f);  

创建OutputStream对象后,可以使用以下方法来写入流或者进行其他的流操作。  

方法

描述

public void close() throws IOException{}

关闭此文件输入流,释放与该流相关的所有系统资源,并抛出IOException异常。

protected void finalize()throws IOException {}

此方法清除与文件的连接,确保在不再引用文件输入流时调用close方法,抛出IOException异常。

public void write(int w)throws IOException{}

这个方法把指定的字节写到输出流中。

public void write(byte[] w)

把指定数组中w.length长度的字节写到OutputStream中。

示例:  

以下是一个演示InputStream和OutputStream用法的例子:  大数据编程教程

以上程序首先创建文件text.txt,并将给定的数字以二进制形式写入文件,并同时将其输出到控制台。  

因为上面的代码是用二进制代码编写的,所以可能有一些乱码了,您可以使用以下代码示例解决乱码问题:  大数据编程教程

九、Java中的目录  

1、创建目录  

file类中有两种方法可用于创建文件夹:  

①mkdir()方法创建一个文件夹,如果成功,则返回true;如果失败,则返回false。失败表示文件对象指定的路径已存在,或者由于整个路径不存在而无法创建文件夹。  

②mkdirs()方法创建一个文件夹及其所有父文件夹。  

以下示例创建文件夹/tmp/user/Java/bin:  大数据编程教程

2、读取目录  

目录实际上是一个文件对象,其中包含其他文件和文件夹。  

如果您创建了一个文件对象并且它是一个目录,那么调用isDirectory()方法将返回true。  

可以对对象调用list()方法来提取它包含的文件和文件夹列表。  

下面的示例演示如何使用list()方法检查文件夹的内容:  大数据编程教程

运行结果:  大数据编程教程

3、删除目录或文件  

可以使用java.io.File.delete()方法删除文件。  

下面的代码将删除目录/tmp/java/,需要注意的是,删除目录时,必须确保目录中没有其他文件可以正确删除,否则将无法删除。  

测试目录结构:  大数据编程教程

以上内容由开课吧小编为大家整理发布的“解析大数据编程教程:JavaStream、File及IO”一文,更多Java教程相关内容尽在开课吧广场Java教程频道。  

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享