黑马程序员_基础_IO流学习笔记_IO流基础

来源:互联网 发布:biorad cfx 软件下载 编辑:程序博客网 时间:2024/06/06 07:33
-------android培训、java培训、期待与您交流!----------

1、IO流概述

IO流用来处理设备之间的数据传输;Java对数据的操作是通过流的方法;Java用于操作流的对象都在IO包中;流按操作数据分为两种:字节流和字符流;流按流向分为:输入流、输出流。

字符流可以在内部融合编码表,可以指定使用哪个编码表,以解决乱码问题。

字节流的抽象基类:InputStream、OutputStream;字符流的抽象基类:Reader、Writer。由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。如:InputStream的子类FileInputStream;Reader的子类FileReader。

2、IO流-FileWriter

Writer是写入字符流的抽象类。子类必须实现的方法仅有 write(char[], int, int)、flush() 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。

下面是简单的FileWriter例子,以及一些要点说明:

public static void fileWriter() throws IOException{//FileWriter//创建一个FileWriter对象,该对象一被初始化就必须要明确被操作的文件。//而且该文件会被创建到指定目录下。如果该目录下已有同名文件,将被覆盖。//其实该步就是在明确数据要存放的目的地。Writer writer = new FileWriter("G:\\TestFolder\\writer.txt");//调用write方法,将字符串写入到流中writer.write("你是程序猿");//将缓冲区存放的数据插入到文件中writer.flush();writer.write("   你全家都是程序猿");//关闭流资源,关闭之前会刷新一次内部缓冲区的数据。close之后不能继续使用流写入字符串//java写入数据实质是调用系统内部的方式完成数据的插入,会使用系统的资源,因此结束插入数据之前需要close()writer.close();}

3、IO流-IO异常处理方式

推荐文件分隔符使用 File.separator 替代双斜杠“\\”,下面是IO异常处理方式的简单例子,以及一些要点说明:

public static void ioException(){//IO异常处理方式Writer writer = null;//将writer定义在外部try {writer = new FileWriter("G:" + File.separator + "TestFolder" + File.separator + "ioexception.txt");writer.write("我是一个程序猿");} catch (IOException e) {e.printStackTrace();} finally {//finally块中的代码一定会执行,所以要将close方法写到里面try {if(writer != null)//如果writer初始化异常,直接关闭writer会报异常,需判断是否为nullwriter.close();} catch (IOException e) {e.printStackTrace();}}}

4、IO流-文件的续写

实例化一个FileWriter流的时候,在文件名后面再传递一个boolean的参数可控制是否覆盖源文件。下面是文件续写的简单例子,以及一些要点说明:

public static void ioFileWritten(){//IO流-文件的续写Writer writer = null;String spr = File.separator;//传递一个true参数,代表不覆盖已有的文件,并在已有文件的末尾处进行数据的续写try {writer = new FileWriter("G:" + spr + "TestFolder" + spr + "writer.txt", true);writer.write("本文件可续写\t");//\t表示制表符writer.write("我在上面\r\n我在下面");//windows系统需使用\r\n换行,linux系统\n即可换行} catch (IOException e) {e.printStackTrace();} finally {if(writer != null)try {writer.close();} catch (IOException e) {e.printStackTrace();}}}


------- android培训、java培训、期待与您交流! ----------详细请查看:www.itheima.com
0 0