------<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、文件的续写功能
FileWriter(String fileName,boolean 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>、期待与您交流! -------