java中的流——缓冲流
缓冲流要套在相应的“节点流”之上,对读写的数据提供缓冲功能。
JDK提供了四种缓冲流:
java.io
Class BufferedReader
Constructor Summary
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
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
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
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,再读取文件