流可以定義為數據序列或連續的數據流。流是處理輸入/輸出的清晰方法。流有兩種類型,如下所示:
在上圖中,我們的InputStream和OutputStream將駐留在字節流中。那麽我們來討論一下字節流。
1. 字節流:字節流提供了一種處理字節輸入和輸出的便捷方式。字節流進一步分為各種類,但頂層層次類如下所示:
1.1 InputStream:InputStream是Byte Stream的抽象類,說明流輸入,用於讀取,可以是文件、圖像、音頻、視頻、網頁等,都可以。因此,InputStream 一次從源讀取一項數據。
1.2 OutputStream:OutputStream是Byte Stream的一個抽象類,說明流輸出,用於將數據寫入文件、圖像、音頻等。因此,OutputStream一次寫入一個數據到目的地。
Difference between InputStream and OutputStream
InputStream | 輸出流 |
---|---|
1.它是一個說明Stream Input的抽象類。 | 1.它是一個抽象類,說明Stream Output。 |
2. InputStream 一次從源讀取一次數據。 | 2. OutputStream 一次將數據寫入目的地一次。 |
3. InputStream 由執行以下操作的方法組成:
|
3. 輸出流由執行以下操作的方法組成:
|
4.InputStream的類型有:
在這些類型中,最重要且最常用的類型是 FileInputStream。 |
4.OutputStream的類型有:
在這些類型中,最重要且最常用的類型是FileOutput Stream。 |
輸入流程序:
在此程序中,文件gfg.txt由“GEEKSFORGEEKS”組成。
注意:該文件保存在保存 java 程序的同一位置,然後執行以下程序。如果文件保存在某個特定位置,則寫入詳細信息,例如:
FileInputStream fileIn=new FileInputStream("C:\\gfg.txt");
Java
// Imported to use methods
import java.io.FileInputStream;
// Main Class
public class InputStreamExample {
public static void main(String args[])
{
// Reading from Source file
try {
FileInputStream fileIn
= new FileInputStream("gfg.txt");
int i = 0;
while ((i = fileIn.read()) != -1) {
System.out.print((char)i);
}
fileIn.close();
}
catch (Exception e) {
System.out.println(e);
}
}
}
輸出:
GEEKSFORGEEKS
OutputStream 的程序
這裏gfg.txt 文件是空的,並且保存在保存Java 程序的同一位置。該程序將GeeksforGeeks寫入空文件中,如果文本成功寫入文件,則顯示消息“文件已成功更新”。
Java
// Imported to use inbuilt methods
import java.io.FileOutputStream;
// Main class
public class OutputStreamExample {
public static void main(String args[])
{
// Writing in file gfg.txt
try {
FileOutputStream fileOut
= new FileOutputStream("gfg.txt");
String s = "GeeksforGeeks";
// converting string into byte array
byte b[] = s.getBytes();
fileOut.write(b);
fileOut.close();
System.out.println(
"file is successfully updated!!");
}
catch (Exception e) {
System.out.println(e);
}
}
}
輸出:
file is successfully updated!!
當我們再次使用第一個程序讀取文件時,輸出如下所示:
GeeksforGeeks
相關用法
- Java InputStream available()用法及代碼示例
- Java InputStream close()用法及代碼示例
- Java InputStream mark()用法及代碼示例
- Java InputStream markSupported()用法及代碼示例
- Java InputStream reset()用法及代碼示例
- Java InputStream skip()用法及代碼示例
- Java InputStreamReader close()用法及代碼示例
- Java InputStreamReader getEncoding()用法及代碼示例
- Java InputStreamReader ready()用法及代碼示例
- Java InputStream轉String用法及代碼示例
- Java InputStreamReader用法及代碼示例
- Java Integer divideUnsigned()用法及代碼示例
- Java Integer equals()用法及代碼示例
- Java Integer getInteger()用法及代碼示例
- Java Integer longValue()用法及代碼示例
- Java Integer max()用法及代碼示例
- Java Integer min()用法及代碼示例
- Java Integer numberOfLeadingZeros()用法及代碼示例
- Java Integer numberOfTrailingZeros()用法及代碼示例
- Java Integer parseInt()用法及代碼示例
- Java Integer parseUnsignedInt()用法及代碼示例
- Java Integer remainderUnsigned()用法及代碼示例
- Java Integer reverseBytes(int i)用法及代碼示例
- Java Integer toBinaryString()用法及代碼示例
- Java Integer toHexString()用法及代碼示例
注:本文由純淨天空篩選整理自jagroopofficial大神的英文原創作品 Difference Between InputStream and OutputStream in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。