JAVA中的一些缓冲流
缓冲流又称为高效流,它相较于原始流来说,自带缓冲区,可以提高原始字节流,字符流的读写性能
常见的缓冲流像是BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter等
字节缓冲输入流和输出流自带了8KB的缓冲池,我们可以从缓冲池中读取写入数据,所以性能会有提升
一个利用缓冲流拷贝文件的示例如下
package BasicPractice.FileTest;
import java.io.*;
public class FileTest04 {
public static void main(String[] args){
try(
//try括号里只能放资源对象,这些资源对象用完会自动关闭资源,不用手动写close()
//创建一个字节输入流管道
InputStream fis = new FileInputStream("src\\filetest04.txt");
InputStream bis = new BufferedInputStream(fis);
//创建一个字节输出流管道
OutputStream fos = new FileOutputStream("src\\filetest05.txt");
OutputStream bos = new BufferedOutputStream(fos);
){
//创建一个字节数组用来转移数据
byte[] buffer = new byte[1024];
int len;
while((len = bis.read(buffer)) != -1){
bos.write(buffer, 0, len);
}
}catch (Exception e){
e.printStackTrace();
}
}
}
利用FileReader的readline方法读取文件内容
package BasicPractice.FileTest;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileTest07 {
public static void main(String[] args) throws IOException {
FileReader fw = new FileReader("src\\filetest08.txt");
BufferedReader br = new BufferedReader(fw);
String line;
while((line = br.readLine()) != null){
System.out.println(line);
}
}
}
利用FileWriter写入数据
package BasicPractice.FileTest;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class FileTest08 {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("src\\filetest07.txt",true);
BufferedWriter bw = new BufferedWriter(fw);
//这么做只能写单个字符,像abc就会报错
bw.write(97);
bw.newLine();
bw.write('王');
bw.newLine();
//循环写
//写入一个字符
bw.write('哈');
//换行
bw.write("\r\n");
//写入一堆字符串
String str = "我就是我,是颜色不一样的烟火";
bw.write(str);
bw.write("\r\n");
//写一个字符数组
char[] chars = str.toCharArray();
bw.write(chars);
bw.write("\r\n");
//写入字符串中指定的内容,示例为从第4个字符开始,往后写5个
bw.write(str,3,5);
//关闭流
bw.close();
fw.close();
}
}