流可以定义为数据序列或连续的数据流。流是处理输入/输出的清晰方法。流有两种类型,如下所示:
在上图中,我们的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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。