标签:try catch oid lin pac 内容 package line ima
缓存流存在的意义是减少程序读取和写入硬盘的次数,读取和写入都经由缓存流。
读取时一次性从硬盘中读一定数量的数据进入缓存流,需要时从缓存流取出,这样就减少了访问硬盘的次数。
写入时先写入缓存流,只有当缓存流里的数据超出一定量之后再一次性写入到硬盘中,这样也可以减少访问硬盘的次数。
BufferedReader需要传入一个已经生成好的读取流(FileReader),这样才能建立缓存流的连接,便于读取
1 package IO流; 2 3 import java.io.File; 4 import java.io.FileReader; 5 import java.io.BufferedReader; 6 import java.io.IOException; 7 8 public class 使用缓存流读取数据 { 9 10 public static void main(String[] args) { 11 12 File f=new File("D://1.txt"); 13 try( 14 FileReader fr=new FileReader(f);//在try语句中创建自动关闭流的方式,如果想同时创建多个流就要采用格式。 15 BufferedReader br=new BufferedReader(fr); 16 ){ 17 String s=br.readLine();//记录缓存流中的内容 18 while(s!=null) 19 { 20 System.out.println(s); 21 s=br.readLine();//缓存流每读出一行内容,缓存流中就会删除这一段内容。 22 } 23 }catch(IOException e){ 24 e.printStackTrace(); 25 } 26 } 27 }
1 package IO流; 2 3 import java.io.File; 4 import java.io.FileReader; 5 import java.io.BufferedReader; 6 import java.io.IOException; 7 8 public class 使用缓存流读取数据 { 9 10 public static void main(String[] args) { 11 12 File f=new File("D://1.txt"); 13 try( 14 FileReader fr=new FileReader(f);//在try语句中创建自动关闭流的方式,如果想同时创建多个流就要采用格式。 15 BufferedReader br=new BufferedReader(fr); 16 ){ 17 br.readLine(); 18 String s=br.readLine();//记录缓存流中的内容 19 while(s!=null) 20 { 21 System.out.println(s); 22 s=br.readLine();//缓存流每读出一行内容,缓存流中就会删除这一段内容。 23 } 24 }catch(IOException e){ 25 e.printStackTrace(); 26 } 27 } 28 }
我放上了两段代码和结果,两者不同的地方在于第17行,readLine()函数每次读取都会删除掉缓存流中对应的内容,不管读出来的内容是否被一个String保存过。
BufferedWriter和BufferedReader一样,都需要传入一个已经生成好的流,从而建立连接,方便写出数据
1 package IO流; 2 3 import java.io.File; 4 import java.io.FileWriter; 5 import java.io.BufferedWriter; 6 import java.io.IOException; 7 8 public class 使用缓存流写出数据 { 9 10 public static void main(String[] args) { 11 File f=new File("D://1.txt"); 12 try( 13 FileWriter fw=new FileWriter(f); 14 BufferedWriter bw=new BufferedWriter(fw); 15 ){ 16 bw.write("May"); 17 bw.newLine(); 18 bw.write("the force be with you!"); 19 } 20 catch(IOException e) { 21 e.printStackTrace(); 22 } 23 } 24
一种跳过缓存,立即将数据写进硬盘的方法
1 package IO流; 2 3 import java.io.File; 4 import java.io.FileWriter; 5 import java.io.PrintWriter; 6 import java.io.IOException; 7 8 9 public class Flush { 10 11 public static void main(String[] args) { 12 File f=new File("D://1.txt"); 13 try( 14 FileWriter fw=new FileWriter(f); 15 PrintWriter pw=new PrintWriter(fw); 16 ){ 17 pw.print("Hello,"); 18 pw.flush();//强制将缓存中的内容写入到硬盘中,无论缓存是否已经满了 19 pw.print("World!"); 20 pw.flush(); 21 }catch(IOException e) { 22 e.printStackTrace(); 23 } 24 } 25 }
标签:try catch oid lin pac 内容 package line ima
原文地址:https://www.cnblogs.com/wangqianming12138/p/14402431.html