缓冲流

奋死学习Java 24天前 ⋅ 94 阅读

处理流之一:缓冲流

为了提高数据读写的速度,Java.API提供了带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组。

恩局数据操作单位可以把缓冲流分为:

BufferedInputStream 和 BuffereOutputStream

BufferedReader 和 BufferedWriter

缓冲流要“套接”在响应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法。

对于输出的缓冲流,写出的数据会现在内存中缓存,使用flush()将会使内存中的数据立刻写出。

注:使用流的时候最后都要关闭,那么关闭流要最晚开的流最早关,然后依次。

//缓冲字节流
public static void testBufferedInputStream() throws Exception{//要抛出异常
  FileInputStream in = new FileInputStream("路径");//先创建一个文件字节流
  BufferedInputStream br = new BufferedInputStream(in);//将in这个字节流定义为缓冲字节流
  byte[] b = new byte[10];//创建一个10个单位的字节数组
  int len = 0;//定义一个变量
  while((len = br.read(b) != -1){//用来判断是否读完b这个数组
    System.out.println(new String(b,0,len));//输出数组b,从0位置到之后的len个位置
  }

}

 

//缓冲流文件的复制
public static void copyFile() throws Exception{//一定要记得抛出异常
  BufferedInputStream br = new BufferedInputStream(new FileInputStream("路径1"));
  BufferedOutputStream  bo = new BufferedOutputStream(new FileOutputStream("路径2"));
  byte[] b = new byte[1024];
  int len = 0;
  while((len = br.read(b)) != -1){
    bo.write(b,0,len);
  }
  bo.flush();
  bo.close();
  br.close();
}

 

//缓冲字符输出流
public static void testBufferedWriter() throws Exception{
  FileWriter fw = new FileWriter("路径1");
  BufferedWriter bw = new BufferedWriter(fw);
  String s = "djfhskdf";
  bw.writer(s);
  bw.flush();
  bw.close();
  fw.close();
}

 

//缓冲字符流复制文件
public static void copyFile() throws Exception{
  BufferedReader br = new BufferedReader("路径1"):
  BufferedWriter bw = new BufferedWriter("路径2");
  char[] c = new char[10];
  int len = 0;
  while((len = br.read(c)) != -1){
    bw.writer(c,0,len);
  }
  bw.flush();
  bw.close();
  br.close();
}

 

 

 

全部评论: 0

    我有话说: