Java IO 流(Stream)

java io 流(stream)

java.io 包幾乎包含了所有與輸入、輸出操作相關(guān)的類。所有這些流類 stream 代表了輸入源和輸出目標(biāo)。

java.io 包中的流支持很多種格式,比如:基本類型、對(duì)象等。一個(gè)流可以理解為一個(gè)數(shù)據(jù)的序列。輸入流表示從一個(gè)源讀取數(shù)據(jù),輸出流表示向一個(gè)目標(biāo)寫數(shù)據(jù)。

java 為 i/o 提供了強(qiáng)大的而靈活的支持,使其更廣泛地應(yīng)用到文件傳輸和網(wǎng)絡(luò)編程中。

 

1. java io 輸入輸出流的類層次圖

 

2. 讀取控制臺(tái)輸入

java 的控制臺(tái)輸入由 system.in 完成。

為了獲得一個(gè)綁定到控制臺(tái)的字符流,你可以把 system.in 包裝在一個(gè) bufferedreader 對(duì)象中來創(chuàng)建一個(gè)字符流。

1)創(chuàng)建 bufferedreader

創(chuàng)建 bufferedreader 的語法:

bufferedreader br = new bufferedreader(new inputstreamreader(system.in));

bufferedreader 對(duì)象創(chuàng)建后,我們便可以使用 read() 方法從控制臺(tái)讀取一個(gè)字符,或者用 readline() 方法讀取一個(gè)字符串。

2)從控制臺(tái)讀取多字符輸入

從 bufferedreader 對(duì)象讀取一個(gè)字符要使用 read() 方法,它的語法如下:

int read( ) throws ioexception

每次調(diào)用 read() 方法,它從輸入流讀取一個(gè)字符并把該字符作為整數(shù)值返回。 當(dāng)流結(jié)束的時(shí)候返回 -1。該方法拋出 ioexception。

下面的程序示范了用 read() 方法從控制臺(tái)不斷讀取字符直到用戶輸入 q。

//使用 bufferedreader 在控制臺(tái)讀取字符

import java.io.*;
    
public class brread {
    public static void main(string[] args) throws ioexception {
        char c;
        // 使用 system.in 創(chuàng)建 bufferedreader
        bufferedreader br = new bufferedreader(new inputstreamreader(system.in));
        system.out.println("輸入字符, 按下 'q' 鍵退出。");
        // 讀取字符
        do {
            c = (char) br.read();
            system.out.println(c);
        } while (c != 'q');
    }
}

以上范例編譯運(yùn)行結(jié)果如下:

輸入字符, 按下 'q' 鍵退出。
test
t
e
s
t

q
q

3)從控制臺(tái)讀取字符串

從標(biāo)準(zhǔn)輸入讀取一個(gè)字符串需要使用 bufferedreader 的 readline() 方法。

它的一般格式是:

string readline( ) throws ioexception    

下面的程序讀取和顯示字符行直到你輸入了單詞"end"。

//使用 bufferedreader 在控制臺(tái)讀取字符
import java.io.*;
    
public class brreadlines {
    public static void main(string[] args) throws ioexception {
        // 使用 system.in 創(chuàng)建 bufferedreader
        bufferedreader br = new bufferedreader(new inputstreamreader(system.in));
        string str;
        system.out.println("enter lines of text.");
        system.out.println("enter 'end' to quit.");
        do {
            str = br.readline();
            system.out.println(str);
        } while (!str.equals("end"));
    }
}

以上范例編譯運(yùn)行結(jié)果如下:

enter lines of text.
enter 'end' to quit.
this is line one
this is line one
this is line two
this is line two
end
end

jdk 5 后的版本我們也可以使用 java scanner 類來獲取控制臺(tái)的輸入。

 

3. 從控制臺(tái)輸出

控制臺(tái)的輸出由 print( ) 和 println() 完成。這些方法都由類 printstream 定義,system.out 是該類對(duì)象的一個(gè)引用。

printstream 繼承了 outputstream類,并且實(shí)現(xiàn)了方法 write()。這樣,write() 也可以用來往控制臺(tái)寫操作。

printstream 定義 write() 的最簡單格式如下所示:

void write(int byteval)

該方法將 byteval 的低八位字節(jié)寫到流中。

1) 輸出單個(gè)字符

下面的例子用 write() 把字符 "a" 和緊跟著的換行符輸出到屏幕:

import java.io.*;
 
//演示 system.out.write().
public class writedemo {
    public static void main(string[] args) {
        int b;
        b = 'a';
        system.out.write(b);
        system.out.write('\n');
    }
}

運(yùn)行以上范例在輸出窗口輸出 "a" 字符

a

注意:write() 方法不經(jīng)常使用,因?yàn)?print() 和 println() 方法用起來更為方便。

2) 輸出字符串

在 java 中,system.out.println() 是我們經(jīng)常會(huì)用到的一個(gè)語句,它的作用是將內(nèi)容輸出在控制臺(tái),常用于打印調(diào)試信息。除了 system.out.println() 之外,還有其他的打印結(jié)果的方法。

system.out.print(),這個(gè)方法與 system.out.println() 很像,區(qū)別就在于,system.out.println() 會(huì)在標(biāo)準(zhǔn)的輸出中顯示文字后換行,system.out.print() 輸出文字后不會(huì)換行。

例如:輸出兩行字符串。

system.out.println("helloword one-------");
system.out.println("helloword two-------");

下一節(jié):java 文件讀寫流

java語言 教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频