java中的流——缓冲流

java中的流——缓冲流

缓冲流要套在相应的“节点流”之上,对读写的数据提供缓冲功能。

JDK提供了四种缓冲流:

java.io

Class BufferedReader

Constructor Summary

Constructors Constructor and Description
BufferedReader(Reader in)
Creates a buffering character-input stream that uses a default-sized input buffer.
BufferedReader(Reader in, int sz)
Creates a buffering character-input stream that uses an input buffer of the specified size.
java.io

Class BufferedWriter

Constructor Summary

Constructors Constructor and Description
BufferedWriter(Writer out)
Creates a buffered character-output stream that uses a default-sized output buffer.
BufferedWriter(Writer out, int sz)
Creates a new buffered character-output stream that uses an output buffer of the given size.
java.io

Class BufferedInputStream

Constructor Summary

Constructors Constructor and Description
BufferedInputStream(InputStream in)
Creates a  BufferedInputStream and saves its argument, the input stream  in, for later use.
BufferedInputStream(InputStream in, int size)
Creates a  BufferedInputStream with the specified buffer size, and saves its argument, the input stream  in, for later use.
java.io

Class BufferedOutputStream

Constructor Summary

Constructors Constructor and Description
BufferedOutputStream(OutputStream out)
Creates a new buffered output stream to write data to the specified underlying output stream.
BufferedOutputStream(OutputStream out, int size)
Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer size.

 处理流类型:


 

java.io

Class BufferedInputStream

TestBufferStream1.java

import java.io.*;

/*
	BufferedInputStream缓冲输入流
	测试BufferStream,缓冲流
*/
public class TestBufferStream1 {
  public static void main(String[] args) {
    try {
      FileInputStream fis = new FileInputStream("F:\\java\\io\\HelloWorld.java");
			  
	  //BufferedInputStream缓冲流
      BufferedInputStream bis = new BufferedInputStream(fis);
      int c = 0;
      System.out.println((char)bis.read());
      System.out.println(bis.read());
	  
	  //mark(100),标记,从第100个字符开始读
      bis.mark(100);
      for(int i=0;i<=10 && (c=bis.read())!=-1;i++){
        System.out.print((char)c+" ");
      }
      System.out.println(); 
	  
	  //reset()回到标记的点,即第100个字符
      bis.reset();
      for(int i=0;i<=10 && (c=bis.read())!=-1;i++){
        System.out.print((char)c+" ");
      }
      bis.close();
    } catch (IOException e) {e.printStackTrace();}
  }
}
F:\java\io>javac TestBufferStream1.java

F:\java\io>java TestBufferStream1
p
117
b l i c   c l a s s
b l i c   c l a s s
F:\java\io>javac TestBufferStream2.java

 java.io

Class BufferedReader

java.io

Class BufferedWriter

TestBufferStream2.java

import java.io.*;

/*
	BufferedWriter,BufferedReader 缓冲流
*/
public class TestBufferStream2 {
  public static void main(String[] args) {
    try {
      BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\java\\io\\dat2.txt"));
      BufferedReader br = new BufferedReader(new FileReader("F:\\java\\io\\dat2.txt"));
      String s = null;
      for(int i=1;i<=100;i++){
		//随机数转成字符串
        s = String.valueOf(Math.random());
		//写入缓冲流
        bw.write(s);
        //换行
		bw.newLine();
      }
	  //倒光数据
      bw.flush();
	  
	  //读取行
      while((s=br.readLine())!=null){
        System.out.println(s);
      }
      bw.close(); 
      br.close();
    } catch (IOException e) { 
	  e.printStackTrace();
	}
  }
}
F:\java\io>java TestBufferStream2
0.44605365873993197
0.7172517110637919
0.45266496240025944
0.26441294566414975
0.40643865442669536
0.7307633218927724
0.2641493131251609
0.16215857289597668
0.09546816530624025
0.05250590007012379
0.706305952265802
0.7146685956709623
0.12094533453441803
0.41902835622438284
0.716202475273043
0.7838577652318317
0.7729074867368703
0.41414034677906597
0.9838619363312414
0.14519005797714812
0.09659520188919035
0.6194052270847193
0.20280298200322233
0.8644062694639841
0.059035295760902495
0.24494202492557415
0.3453610863673868
0.7162218991497389
0.5663478287237094
0.940274785183616
0.7633587185037936
0.15772118849521666
0.7461146190378233
0.9937553274103151
0.8375434198068626
0.7685868655604795
0.34762266286039056
0.6691255839665746
0.10331487867637068
9.70149639575757E-4
0.3325232668934798
0.9990736725881437
0.2656129731949294
0.5437184674341257
0.7294229747248173
0.958178159164025
0.28244080752612866
0.5988433149852124
0.6081506107095568
0.5714226965983857
0.7443482366259503
0.8925242801963478
0.592919434086085
0.17950368867556477
0.10630276309040054
0.2986093862407587
0.6783319116914838
0.7784411465205322
0.938726461500579
0.5394861049131998
0.23814935074824095
0.07854366352549125
0.25607902421683426
0.5473613826413953
0.023976602180069806
0.6865658312828175
0.15421857525112181
0.7184029694266285
0.6394879002643735
0.6049366977117457
0.44187356561114777
0.4728586447683065
0.44554652206609735
0.06322664824973623
0.6869106357451145
0.2461837005738483
0.10254764456903398
0.5495584892863888
0.11468448059632808
0.27937135694773985
0.9885405636272356
0.79345848200023
0.09360825354076607
0.35109483302822087
0.5451623333244178
0.3666817980972056
0.5221833506515708
0.8999336014991125
0.19814206262263445
0.5148354642313737
0.29208016057346686
0.8218706075012052
0.875111660954438
0.8101619682408246
0.14346207744893114
0.5964115429721846
0.30068472586288386
0.22463444345335803
0.6515971969848199
0.29409071208430937

F:\java\io>

 先生成文件dat2.txt,再读取文件

猜你喜欢

转载自mfcfine.iteye.com/blog/2384650