-------
android培训、
java培训、期待与您交流!----------
------- android培训、 java培训、期待与您交流! ----------详细请查看: www.itheima.com
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会报异常,需判断是否为null
writer.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