實(shí)例1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
package dataInputStreamAndPrintStreamDemo; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.PrintStream; //示范如何自鍵盤(pán)讀入字符串,并使用DataInputStream,PrintStream類(lèi)將程序執(zhí)行顯示在屏幕(標(biāo)準(zhǔn)輸出)上 public class DataInputStreamAndPrintStreamDemo { public static void main(String[] args) { int count; byte input[] = new byte [ 256 ]; String InputString; // 鍵盤(pán)讀入 DataInputStream stdin = new DataInputStream(System.in); //提高執(zhí)行效率,幾乎所有的InputStream類(lèi)都可以被BufferedStream類(lèi)包覆(wrap)來(lái)提高I/O效率 BufferedInputStream bufin = new BufferedInputStream(stdin); // 屏幕輸出 DataOutputStream stdout = new DataOutputStream(System.out); // 將結(jié)果輸出至屏幕 BufferedOutputStream bufout = new BufferedOutputStream(stdout); // 提高輸出效率 PrintStream p = new PrintStream(System.out); // 將結(jié)果輸出至屏幕 try { if (bufin.markSupported()) { p.println( "支持串流標(biāo)記:是" ); // 使用PrintStream輸出 p.println( "輸入字符串,結(jié)束請(qǐng)按【Enter】...\n" + "=>" ); //使得流在第一個(gè)位被作上標(biāo)記(mark),并且會(huì)保留256位(mark(256)) bufin.mark( 256 ); //讀取字節(jié)并存放在指定的數(shù)組中 count = bufin.read(input); p.println( "讀入字符數(shù):" + count); p.print( "你輸入的字符串為:" ); // 寫(xiě)入流,只是將數(shù)據(jù)寫(xiě)入流中而已,并不輸出數(shù)據(jù) // 所以在其后必須使用flush()函數(shù)將流中的數(shù)據(jù)強(qiáng)制輸出 bufout.write(input, 0 , count); bufout.flush(); // 強(qiáng)制輸出至指定的輸出裝置 bufin.reset(); // 將讀取位置移至標(biāo)記處,也就是流中的第一位 bufin.read(input, 0 , count); p.print( "字符串的前半段:" ); bufout.write(input, 0 , count / 2 ); //相當(dāng)于System.out.println(); bufout.write(( int )( '\n' )); bufout.flush(); bufin.reset(); bufin.skip(count / 2 ); bufin.read(input, 0 , count / 2 ); p.print( "字符串的后半段:" ); bufout.write(input, 0 , count / 2 ); bufout.flush(); } else { System.out.println( "字符串流標(biāo)記:否" ); } // 關(guān)閉流 p.close(); stdin.close(); bufin.close(); stdout.close(); bufout.close(); } catch (IOException E) { System.out.println( "發(fā)生I/O錯(cuò)誤!!!" ); } } } //其實(shí)我們對(duì)PrintStream類(lèi)應(yīng)該很熟悉才對(duì),System.out就是一個(gè)PrintStream類(lèi)對(duì)象,其提供的print()和println()函數(shù) //幾乎可顯示所有數(shù)據(jù)類(lèi)型的變量 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
//例程2:package iotest; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.util.logging.Level; import java.util.logging.Logger; public class IOtest { public static void main(String[] args) throws IOException { byte buf[] = new byte [ 255 ]; byte bufin[] = new byte [ 255 ]; //只能用byte格式將數(shù)據(jù)送入文件 String str = "輸入的文字:" ; buf = str.getBytes(); try { FileOutputStream fout = new FileOutputStream( "test.txt" ); PrintStream p = new PrintStream(fout); p.println( "輸入的文字~~~~~~~" + '\n' ); //方式一 fout.write(buf, 0 , buf.length); //方式二 fout.write(buf); //方式三 //fout.flush(); //fout.close(); System.out.println( "快輸入文字:" ); int bytes = System.in.read(bufin, 0 , 255 ); //追加文本!!!!!!!!!!!!!!!! //fout = new FileOutputStream("test.txt",true); fout.write(bufin, 0 , bytes); } catch (FileNotFoundException ex) { Logger.getLogger(IOtest. class .getName()).log(Level.SEVERE, null , ex); } } } |
結(jié)果:
1
2
3
4
|
//輸入的文字~~~~~~~ //輸入的文字:輸入的文字:鍩庡競(jìng)宸ヤ笟 fdsfdssssssssssssssssssssssssssss |
總結(jié)
以上就是本文關(guān)于Java流操作之數(shù)據(jù)流實(shí)例代碼的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
原文鏈接:http://blog.csdn.net/sac761/article/details/47037063