黑马程序员——java基础---IO流(第18天)

来源:互联网 发布:自学编程看什么书 编辑:程序博客网 时间:2024/05/01 04:21

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

IO流

一、概述

IO流用来处理设备之间的数据传输

Java用于操作流的对象都在IO包中

流按操作数据分为两种:字节流与字符流

流按流向分为:输入流,输出流。

字节流的抽象基类:InputStream ,OutputStream。

字符流的抽象基类:Reader ,    Writer。

注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。

二、字符流常用功能

流功能属于 java.io;使用之前需要先导包。

2.1、文件写出流FileWriter(stringfileName)

构造函数:

FileWriter(stringfileName)   若文件不存在则抛出IOException

FileWriter(String fileName, boolean append)  对已有文件进行续写,append为1,则写入末尾处,为0,则覆盖源文件或重新创建。

FileWriter(File file)   根据给定的File对象构造一个 FileWriter 对象

常用方法:

write()

flush()

close()

以上三个方法都会抛出异常       

close()和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。                 

代码示例:

FileWriter fw = new FileWriter("Test.txt");

创建一个FileWriter对象。该对象一被初始化就必须要明确被操作的文件。而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。

其实该步就是在明确数据要存放的目的地。

fw.write("abcde");调用write方法,将字符串写入到流中

fw.flush();刷新流对象中的缓冲中的数据。将数据刷到目的地中。

fw.close();关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。

2.2、IO异常处理方式(IOException)

代码示例:


2.3、文件的续写功能

FileWriterString fileNameboolean append(append为1,则写入末尾处,为0,则覆盖源文件或重新创建)

代码示例:

FileWriterfw = new FileWriter("demo.txt",true);

//传递一个true参数,代表不覆盖已有的文件。并在已有文件的末尾处进行数据续写。

注意:若想用换行符,如实Windows系统则换行符 \r\n。

         若想使用符号\,应写两个,写一个java会默认成为转义字符。

2.4、文件读入流FileReader(stringfileName)

2.4.1 读取方式一

          

2.4.2 读取方式二


注意:方式一读一个字符则写入一个字符。而方式二则是全部都读取完毕将数据都存在一个数组中,然后一次性写入目标文件中,次数明显减少,故:方式二的读取效率更高一些,推荐方式二。

小练习:复制文件

/*

复制的原理:

其实就是将C盘下的文件数据存储到D盘的一个文件中。 

步骤:

1,在D盘创建一个文件。用于存储C盘文件中的数据。

2,定义读取流和C盘文件关联。

3,通过不断的读写完成数据存储。

4,关闭资源。

 */

方法一:不带缓冲区的复制文件




方法二:带缓冲区的文件复制。



------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

0 0