在Java中,流(stream)是處理輸入輸出數據的概念,流是一個連續的數據流,可以是用來讀或寫數據的。流被分為兩個類別:字節流和字符流。其中字節流是以字節為單位讀寫數據,字符流則是以字符為單位讀寫數據。
在Java編程中,我們經常使用read方法來讀取文件中的內容。這個方法可以應用于字節流和字符流中。
字節流的read方法:
int read() throws IOException
該方法從輸入流中讀取下一個字節數據。如果沒有可用數據,則返回-1。
例如:
FileInputStream fis= new FileInputStream("file.txt"); int content; while ((content = fis.read()) != -1) { System.out.print((char) content); }
在上述的例子中,我們使用了FileInputStream類來讀取文件中的內容,然后使用while循環來讀取文件中的每一個字節,并將其轉化為字符,將文件中的所有內容輸出。
字符流的read方法:
int read(char[] c, int off, int len) throws IOException
該方法從輸入流中讀取一定數量的字符,并將其存儲到緩沖區數組c中,從off偏移量開始,最多讀取len個字符,如果不能讀取任何字符,則返回-1。
例如:
FileReader fr = new FileReader("file.txt"); char[] cbuf = new char[1024]; int len; while ((len = fr.read(cbuf)) != -1) { System.out.print(new String(cbuf, 0, len)); }
在上述例子中,我們使用了FileReader類來讀取文件中的內容,然后使用while循環來讀取文件中的每一個字符并存儲在char數組cbuf中。最后將數組中的內容轉化為一個字符串輸出。
讀取字節流和字符流的過程是區別很大的。在字節流中,我們可以使用InputStream的read方法來讀取下一個字節數據。在字符流中,我們可以使用Reader的read方法來讀取一定數量的字符,并將其存儲到緩沖區數組中。