Java–IO流 缓冲字节流和缓冲字符流
缓冲字节流运用
提高读写效率
public class TestFileBufferStream {
public static void main(String[] args) {
long time1 = System.currentTimeMillis();
copyFile("d:/1.jpg","d:/2.jpg");
long time2 = System.currentTimeMillis();
System.out.println(time2 - time1);
}
public static void copyFile(String source,String destination){
//实例化节点流
try(FileInputStream fis = new FileInputStream(source);
FileOutputStream fos = new FileOutputStream(destination);
//实例化处理流
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos)){
int temp = 0;
while ((temp = bis.read()) != -1){
bos.write(temp);
}
bos.flush();
}catch(IOException e){
e.printStackTrace();
}
}
}
字符输入缓冲流
public class TestBufferedReader {
public static void main(String[] args) {
//创建文件字符输入流对象
try(FileReader fr = new FileReader("d:/a.txt");
//创建字符缓冲处理流。缓冲区默认大小为8192个字符。
BufferedReader br = new BufferedReader(fr)){
String temp = "";
//readLine():读取一行文本。
while((temp = br.readLine()) != null){
System.out.println(temp);
}
}catch(IOException e){
e.printStackTrace();
}
}
}
字符输出缓冲流
public class TestBufferedWriter {
public static void main(String[] args) {
//创建文件字符输出流对象
try(FileWriter fw = new FileWriter("d:/a.txt");
//创建字符输出缓冲流对象
BufferedWriter bw = new BufferedWriter(fw)){
//操作缓冲流
bw.write("床前明月光");
bw.write("疑是地上霜");
//换行
bw.newLine();
bw.write("举头望明月");
bw.newLine();
bw.write("低头思故乡");
bw.flush();
}catch (IOException e){
e.printStackTrace();
}
}
}