字符流:
-
Reader是字符输入流,用来读取,可以将文件中的数据读取到Java程序中。
-
Reader是字符输入流,会以字符为单位进行读取。
-
Reader是所有字符输入流的顶层父类,是一个抽象类,如果要用需要使用子类,常用的子类FileReader
字符输入流的使用步骤:
1. 创建字符输入流。
2. 调用read方法读取。
3. 释放资源
-
Writer是字符输出流,用来写,可以将Java程序中的数据写到文件中。
-
Writer是字符流,会以字符为单位写数据。
-
Writer是所有字符输出流的顶层父类,是一个抽象类,如果要用,需要使用子类,常用的子类FileWriter
字符输出流的使用步骤:
1. 创建字符输出流。
2. 调用write方法写数据。
3. 刷新
4. 关流
flush方法和close方法的区别
-
flush方法:刷新。 流在刷新之后还可以使用。
-
close方法:先刷新,然后关流。 流在关闭之后就不能使用了
缓冲流(高效流):
高效字节输入流:BufferedInputStream
高效字节输出流:BufferedOutputStream
FileInputStream fw=new FileInputStream(new File("D:\\国庆\\123.mp4"));
FileOutputStream br=new FileOutputStream(new File("E:\\day021.mp4"));
int a;
while ((a=fw.read())!=-1){
br.write(a);
}
fw.close();
br.close();
这个是字节的输入和输出
字节输出不能写在根目录中
高效字符输入流:BufferedReader
高效字符输出流:BuffereWrite
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。
使用File类创建两个文件,a.txt,和b.txt文件;打开a.txt,手动添加任意内容(至少3行),使用字符流高效流,将a.txt中的内容复制到b.txt中。
File f=new File("a.txt");
f.createNewFile();
File f1=new File("a.txt");
f1.createNewFile();
BufferedReader bw=new BufferedReader(new FileReader(new File("a.txt")));
BufferedWriter br=new BufferedWriter(new FileWriter(new File("b.txt")));
String a;
while ((a=bw.readLine())!=null){
br.write(a);
br.newLine();
}
bw.close();
br.close();
}
br.newLine(); 换行
当数据没有空的时候就一直运行到为空