流可以定义为数据序列或连续数据流。流是处理输入/输出的明确方法。流有两种类型,如下所示:

Java中的流

在上图中,我们的InputStream和OutputStream将驻留在字节流中。下面来看看字节流。

  1. 字节流:字节流提供了一种处理字节输入和输出的便捷方式。字节流进一步分为不同的类,但顶层层次结构类如下所示:

字节流

1.1 InputStream:InputStream是字节流的抽象类,用于描述流输入,用于读取,它可以是文件、图像、音频、视频、网页等。这不重要。因此,输入流一次从源读取一个项目的数据。

Java 中的输入流(OutputStream)

1.2 OutputStream:输出流是字节流的一个抽象类,用于描述流输出,用于将数据写入文件、图像、音频等。因此,输出流一次将数据写入一个目标。
OutputStream

输入流和输出流之间的区别

输入流 输出流
它是一个描述流输入的抽象类。 它是一个描述流输出的抽象类。
输入流 一次从源读取数据。 输出流 一次将数据写入目标一次。
输入流由执行以下方法组成:从输入流中读取下一个字节的数据,并在文件末尾返回 -1:public abstract int read()throws IOException;关闭当前输入流:public int available()throws IOException;返回可以从当前输入流读取的字节数的估计值:public void close()throws IOException 输出流由执行以下方法组成:将一个字节写入当前输出流:public void write(int)throws IOException;将字节数组写入当前输出流:public void write(byte[])throws IOException;刷新当前输出流:public void flush()throws IOException;关闭当前输出流:public void close()throws IOException
输入流的类型是:FileInputStreamByteArrayInputStreamFilterInputStreamObjectInputStream 输出流的类型包括:FileOutputStream,ByteArrayOutputStream,FilterOutputStream,ObjectOutputStream

输入流示例程序:
在这个程序中,文件 yiifg.txt 由“YIIBAIFORGEEKS”组成。

注意:在文件中保存在保存java程序的同一位置,然后按照以下程序进行操作。如果文件保存在某个特定位置,则写下详细信息。

FileInputStream fileIn=new FileInputStream("C:yiifg.txt");

完整实现代码:

// 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("yiifg.txt");
            int i = 0;
            while ((i = fileIn.read()) != -1) {
                System.out.print((char)i);
            }
            fileIn.close();
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}

输出流程序
这里 yiifg.txt 文件是空的,保存在保存 Java 程序的同一位置。该程序将 YiibaiForGeeks 写入空文件中,如果文本已成功写入文件,则显示消息“文件已成功更新”。

// Imported to use inbuilt methods
import java.io.FileOutputStream;

// Main class
public class OutputStreamExample {
    public static void main(String args[])
    {
        // Writing in file yiifg.txt
        try {
            FileOutputStream fileOut
                = new FileOutputStream("yiifg.txt");
            String s = "YiibaiForGeeks";

            // 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);
        }
    }
}

Java中InputStream和OutputStream的区别

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Java中InputStream和OutputStream的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-inputstream-and-outputstream-in-java.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。