锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
1. stream浠h〃鐨勬槸浠諱綍鏈夎兘鍔涗駭鍑烘暟鎹殑鏁版嵁婧愶紝鎴栨槸浠諱綍鏈夎兘鍔涙帴鏀舵暟鎹殑鎺ユ敹婧愩傚湪Java鐨処O涓紝鎵鏈夌殑stream錛堝寘鎷琁nput鍜孫ut stream錛夐兘鍖呮嫭涓ょ綾誨瀷錛?br />
1.1 浠ュ瓧鑺備負(fù)瀵煎悜鐨剆tream
浠ュ瓧鑺備負(fù)瀵煎悜鐨剆tream錛岃〃紺轟互瀛楄妭涓哄崟浣嶄粠stream涓鍙栨垨寰stream涓啓鍏ヤ俊鎭備互瀛楄妭涓哄鍚戠殑stream鍖呮嫭涓嬮潰鍑犵綾誨瀷錛?br />
1) input銆stream錛?br />
1) ByteArrayInputStream錛氭妸鍐呭瓨涓殑涓涓紦鍐插尯浣滀負(fù)InputStream浣跨敤
2) StringBufferInputStream錛氭妸涓涓猄tring瀵硅薄浣滀負(fù)InputStream
3) FileInputStream錛氭妸涓涓枃浠朵綔涓篒nputStream錛屽疄鐜板鏂囦歡鐨勮鍙栨搷浣?br />
4) PipedInputStream錛氬疄鐜頒簡pipe鐨勬蹇碉紝涓昏鍦ㄧ嚎紼嬩腑浣跨敤
5) SequenceInputStream錛氭妸澶氫釜InputStream鍚堝茍涓轟竴涓狪nputStream
2) Out銆stream
1) ByteArrayOutputStream錛氭妸淇℃伅瀛樺叆鍐呭瓨涓殑涓涓紦鍐插尯涓?br />
2) FileOutputStream錛氭妸淇℃伅瀛樺叆鏂囦歡涓?br />
3) PipedOutputStream錛氬疄鐜頒簡pipe鐨勬蹇碉紝涓昏鍦ㄧ嚎紼嬩腑浣跨敤
4) SequenceOutputStream錛氭妸澶氫釜OutStream鍚堝茍涓轟竴涓狾utStream
1.2 浠nicode瀛楃涓哄鍚戠殑stream
浠nicode瀛楃涓哄鍚戠殑stream錛岃〃紺轟互Unicode瀛楃涓哄崟浣嶄粠stream涓鍙栨垨寰stream涓啓鍏ヤ俊鎭備互Unicode瀛楃涓哄鍚戠殑stream鍖呮嫭涓嬮潰鍑犵綾誨瀷錛?br />
1) Input銆Stream
1) CharArrayReader錛氫笌ByteArrayInputStream瀵瑰簲
2) StringReader錛氫笌StringBufferInputStream瀵瑰簲
3) FileReader錛氫笌FileInputStream瀵瑰簲
4) PipedReader錛氫笌PipedInputStream瀵瑰簲
2) Out銆Stream
1) CharArrayWrite錛氫笌ByteArrayOutputStream瀵瑰簲
2) StringWrite錛氭棤涓庝箣瀵瑰簲鐨勪互瀛楄妭涓哄鍚戠殑stream
3) FileWrite錛氫笌FileOutputStream瀵瑰簲
4) PipedWrite錛氫笌PipedOutputStream瀵瑰簲
浠ュ瓧絎︿負(fù)瀵煎悜鐨剆tream鍩烘湰涓婂鏈変笌涔嬬浉瀵瑰簲鐨勪互瀛楄妭涓哄鍚戠殑stream銆備袱涓搴旂被瀹炵幇鐨勫姛鑳界浉鍚岋紝瀛楁槸鍦ㄦ搷浣滄椂鐨勫鍚戜笉鍚屻傚CharArrayReader錛氬拰ByteArrayInputStream鐨勪綔鐢ㄩ兘鏄妸鍐呭瓨涓殑涓涓紦鍐插尯浣滀負(fù)InputStream浣跨敤錛屾墍涓嶅悓鐨勬槸鍓嶈呮瘡嬈′粠鍐呭瓨涓鍙栦竴涓瓧鑺傜殑淇℃伅錛岃屽悗鑰呮瘡嬈′粠鍐呭瓨涓鍙栦竴涓瓧絎︺?br />
1.3 涓ょ涓嶇幇瀵煎悜鐨剆tream涔嬮棿鐨勮漿鎹?br />
InputStreamReader鍜孫utputStreamReader錛氭妸涓涓互瀛楄妭涓哄鍚戠殑stream杞崲鎴愪竴涓互瀛楃涓哄鍚戠殑stream銆?br />
2. stream娣誨姞灞炴?br />
2.1 “涓簊tream娣誨姞灞炴?#8221;鐨勪綔鐢?br />
榪愮敤涓婇潰浠嬬粛鐨凧ava涓搷浣淚O鐨凙PI錛屾垜浠氨鍙畬鎴愭垜浠兂瀹屾垚鐨勪換浣曟搷浣滀簡銆備絾閫氳繃FilterInputStream鍜孎ilterOutStream鐨勫瓙綾伙紝鎴戜滑鍙互涓簊tream娣誨姞灞炴с?br />
涓嬮潰浠ヤ竴涓緥瀛愭潵璇存槑榪欑鍔熻兘鐨勪綔鐢ㄣ?br />
濡傛灉鎴戜滑瑕佸線涓涓枃浠朵腑鍐欏叆鏁版嵁錛屾垜浠彲浠ヨ繖鏍鋒搷浣滐細(xì)
FileOutStream fs = new FileOutStream(“test.txt”);
鐒跺悗灝卞彲浠ラ氳繃浜х敓鐨刦s瀵硅薄璋冪敤write()鍑芥暟鏉ュ線test.txt鏂囦歡涓啓鍏ユ暟鎹簡銆備絾鏄紝濡傛灉鎴戜滑鎯沖疄鐜?#8220;鍏堟妸瑕佸啓鍏ユ枃浠剁殑鏁版嵁鍏堢紦瀛樺埌鍐呭瓨涓紝鍐嶆妸緙撳瓨涓殑鏁版嵁鍐欏叆鏂囦歡涓?#8221;鐨勫姛鑳芥椂錛屼笂闈㈢殑API灝辨病鏈変竴涓兘婊¤凍鎴戜滑鐨勯渶姹備簡銆備絾鏄氳繃FilterInputStream鍜孎ilterOutStream鐨勫瓙綾伙紝涓篎ileOutStream娣誨姞鎴戜滑鎵闇瑕佺殑鍔熻兘銆?br />
2.2 FilterInputStream鐨勫悇縐嶇被鍨?br />
2.2.1 鐢ㄤ簬灝佽浠ュ瓧鑺備負(fù)瀵煎悜鐨処nputStream
1) DataInputStream錛氫粠stream涓鍙栧熀鏈被鍨嬶紙int銆乧har絳夛級鏁版嵁銆?br />
2) BufferedInputStream錛氫嬌鐢ㄧ紦鍐插尯
3) LineNumberInputStream錛氫細(xì)璁板綍input stream鍐呯殑琛屾暟錛岀劧鍚庡彲浠ヨ皟鐢╣etLineNumber()鍜宻etLineNumber(int)
4) PushbackInputStream錛氬緢灝戠敤鍒幫紝涓鑸敤浜庣紪璇戝櫒寮鍙?br />
2.2.2 鐢ㄤ簬灝佽浠ュ瓧絎︿負(fù)瀵煎悜鐨処nputStream
1) 娌℃湁涓嶥ataInputStream瀵瑰簲鐨勭被銆傞櫎闈炲湪瑕佷嬌鐢╮eadLine()鏃舵敼鐢˙ufferedReader錛屽惁鍒欎嬌鐢―ataInputStream
2) BufferedReader錛氫笌BufferedInputStream瀵瑰簲
3) LineNumberReader錛氫笌LineNumberInputStream瀵瑰簲
4) PushBackReader錛氫笌PushbackInputStream瀵瑰簲
2.3 FilterOutStream鐨勫悇縐嶇被鍨?br />
2.2.3 鐢ㄤ簬灝佽浠ュ瓧鑺備負(fù)瀵煎悜鐨凮utputStream
1) DataIOutStream錛氬線stream涓緭鍑哄熀鏈被鍨嬶紙int銆乧har絳夛級鏁版嵁銆?br />
2) BufferedOutStream錛氫嬌鐢ㄧ紦鍐插尯
3) PrintStream錛氫駭鐢熸牸寮忓寲杈撳嚭
2.2.4 鐢ㄤ簬灝佽浠ュ瓧絎︿負(fù)瀵煎悜鐨凮utputStream
1) BufferedWrite錛氫笌瀵瑰簲
2) PrintWrite錛氫笌瀵瑰簲
3. RandomAccessFile
1) 鍙氳繃RandomAccessFile瀵硅薄瀹屾垚瀵規(guī)枃浠剁殑璇誨啓鎿嶄綔
2) 鍦ㄤ駭鐢熶竴涓璞℃椂錛屽彲鎸囨槑瑕佹墦寮鐨勬枃浠剁殑鎬ц川錛歳錛屽彧璇伙紱w錛屽彧鍐欙紱rw鍙鍐?br />
3) 鍙互鐩存帴璺沖埌鏂囦歡涓寚瀹氱殑浣嶇疆
4. I/O搴旂敤鐨勪竴涓緥瀛?br />
Java codeimportjava.io.*;publicclassTestIO{publicstaticvoidmain(String[] args)throwsIOException{//1.浠ヨ涓哄崟浣嶄粠涓涓枃浠惰鍙栨暟鎹瓸ufferedReader in=newBufferedReader(newFileReader("F:\\nepalon\\TestIO.java"));
String s, s2=newString();while((s=in.readLine())!=null)
s2+=s+"\n";
in.close();//1b. 鎺ユ敹閿洏鐨勮緭鍏ufferedReader stdin=newBufferedReader(newInputStreamReader(System.in));
System.out.println("Enter a line:");
System.out.println(stdin.readLine());//2. 浠庝竴涓猄tring瀵硅薄涓鍙栨暟鎹甋tringReader in2=newStringReader(s2);intc;while((c=in2.read())!=-1)
System.out.println((char)c);
in2.close();//3. 浠庡唴瀛樺彇鍑烘牸寮忓寲杈撳叆try{
DataInputStream in3=newDataInputStream(newByteArrayInputStream(s2.getBytes()));while(true)
System.out.println((char)in3.readByte());
}catch(EOFException e){
System.out.println("End of stream");
}//4. 杈撳嚭鍒版枃浠秚ry{
BufferedReader in4=newBufferedReader(newStringReader(s2));
PrintWriter out1=newPrintWriter(newBufferedWriter(newFileWriter("F:\\nepalon\\ TestIO.out")));intlineCount=1;while((s=in4.readLine())!=null)
out1.println(lineCount+++"錛?+s);
out1.close();
in4.close();
}catch(EOFException ex){
System.out.println("End of stream");
}//5. 鏁版嵁鐨勫瓨鍌ㄥ拰鎭㈠try{
DataOutputStream out2=newDataOutputStream(newBufferedOutputStream(newFileOutputStream("F:\\nepalon\\ Data.txt")));
out2.writeDouble(3.1415926);
out2.writeChars("\nThas was pi:writeChars\n");
out2.writeBytes("Thas was pi:writeByte\n");
out2.close();
DataInputStream in5=newDataInputStream(newBufferedInputStream(newFileInputStream("F:\\nepalon\\ Data.txt")));
BufferedReader in5br=newBufferedReader(newInputStreamReader(in5));
System.out.println(in5.readDouble());
System.out.println(in5br.readLine());
System.out.println(in5br.readLine());
}catch(EOFException e){
System.out.println("End of stream");
}//6. 閫氳繃RandomAccessFile鎿嶄綔鏂囦歡RandomAccessFile rf=newRandomAccessFile("F:\\nepalon\\ rtest.dat","rw");for(inti=0; i<10; i++)
rf.writeDouble(i*1.414);
rf.close();
rf=newRandomAccessFile("F:\\nepalon\\ rtest.dat","r");for(inti=0; i<10; i++)
System.out.println("Value"+i+"錛?+rf.readDouble());
rf.close();
rf=newRandomAccessFile("F:\\nepalon\\ rtest.dat","rw");
rf.seek(5*8);
rf.writeDouble(47.0001);
rf.close();
rf=newRandomAccessFile("F:\\nepalon\\ rtest.dat","r");for(inti=0; i<10; i++)
System.out.println("Value"+i+"錛?+rf.readDouble());
rf.close();
}
}
鍏充簬浠g爜鐨勮В閲婏紙浠ュ尯涓哄崟浣嶏級錛?br />
1鍖轟腑錛屽綋璇誨彇鏂囦歡鏃訛紝鍏堟妸鏂囦歡鍐呭璇誨埌緙撳瓨涓紝褰撹皟鐢╥n.readLine()鏃訛紝鍐嶄粠緙撳瓨涓互瀛楃鐨勬柟寮忚鍙栨暟鎹紙浠ヤ笅綆縐?#8220;緙撳瓨瀛楄妭璇誨彇鏂瑰紡”錛夈?br />
1b鍖轟腑錛岀敱浜庢兂浠ョ紦瀛樺瓧鑺傝鍙栨柟寮忎粠鏍囧噯IO錛堥敭鐩橈級涓鍙栨暟鎹紝鎵浠ヨ鍏堟妸鏍囧噯IO錛圫ystem.in錛夎漿鎹㈡垚瀛楃瀵煎悜鐨剆tream錛屽啀榪涜BufferedReader灝佽銆?br />
2鍖轟腑錛岃浠ュ瓧絎︾殑褰㈠紡浠庝竴涓猄tring瀵硅薄涓鍙栨暟鎹紝鎵浠ヨ浜х敓涓涓猄tringReader綾誨瀷鐨剆tream銆?br />
4鍖轟腑錛屽String瀵硅薄s2璇誨彇鏁版嵁鏃訛紝鍏堟妸瀵硅薄涓殑鏁版嵁瀛樺叆緙撳瓨涓紝鍐嶄粠緙撳啿涓繘琛岃鍙栵紱瀵筎estIO.out鏂囦歡榪涜鎿嶄綔鏃訛紝鍏堟妸鏍煎紡鍖栧悗鐨勪俊鎭緭鍑哄埌緙撳瓨涓紝鍐嶆妸緙撳瓨涓殑淇℃伅杈撳嚭鍒版枃浠朵腑銆?br />
5鍖轟腑錛屽Data.txt鏂囦歡榪涜杈撳嚭鏃訛紝鏄厛鎶婂熀鏈被鍨嬬殑鏁版嵁杈撳嚭灞嬬紦瀛樹腑錛屽啀鎶婄紦瀛樹腑鐨勬暟鎹緭鍑哄埌鏂囦歡涓紱瀵規(guī)枃浠惰繘琛岃鍙栨搷浣滄椂錛屽厛鎶婃枃浠朵腑鐨勬暟鎹鍙栧埌緙撳瓨涓紝鍐嶄粠緙撳瓨涓互鍩烘湰綾誨瀷鐨勫艦寮忚繘琛岃鍙栥傛敞鎰廼n5.readDouble()榪欎竴琛屻傚洜涓哄啓鍏ョ涓涓獁riteDouble()錛屾墍浠ヤ負(fù)浜嗘紜樉紺恒備篃瑕佷互鍩烘湰綾誨瀷鐨勫艦寮忚繘琛岃鍙栥?br />
6鍖烘槸閫氳繃RandomAccessFile綾誨鏂囦歡榪涜鎿嶄綔銆?br />