I/O————字符流和流的关闭
Reader字符输入流
Writer字符输出流
用于字符的形式读取和写入数据
FileReader与FileWriter分别是Reader与Writer的子类
public class CharScream { public static void main(String[] args) {
File file = new File("D:\\lolfilder\\lol.exe\\lol.txt"); File file1 = new File("D:\\lolfilder\\lol.exe\\lol2.txt"); try(FileReader fReader = new FileReader(file); FileWriter fWriter = new FileWriter(file1)) { //存放字符输入流的数组 char[] chara= new char[(int) file.length()]; String data="这是字符输出流结果"; //存放字符输出流的数组 char[] chara1 = data.toCharArray(); fReader.read(chara); fWriter.write(chara1); for(char temp:chara) { System.out.println(temp); } } catch (Exception e) { e.printStackTrace(); } }
关于流的关闭
所有的流,无论是输入流还是输出流,使用完毕之后,都应该关闭。 如果不关闭,会产生对资源占用的浪费。 当量比较大的时候,会影响到业务的正常开展。
一、在try中关闭,不推荐使用,因为当文件不存在时,try中的代码不会被执行
二、在finally中关闭
这是标准的关闭流的方式
1. 首先把流的引用声明在try的外面,如果声明在try里面,其作用域无法抵达finally.
2. 在finally关闭之前,要先判断该引用是否为空
3. 关闭的时候,需要再一次进行try catch处理
三、使用try(),在括号中定义流,try,catch或者finally结束的时候,会自动关闭。jdk7开始支持。