对这个String readAsString(InputStream input)方法进行测试就相当简单,因为不一定要传入一个真的FileInputStream。 这就是面向抽象编程原则的应用:接受InputStream抽象类型,而不是具体的FileInputStream类型,从而使得代码可以处理InputStream的任意实现类。 2.OutputStream 和InputStream相反,OutputStream是Java标准库提供的...
在Java中,OutputStream和InputStream是处理输入/输出(I/O)操作的两个基础类,它们分别属于java.io包。这两个类的主要区别在于它们处理数据的方向:OutputStream用于将数据写入目标(如文件、网络连接等),而InputStream用于从源(如文件、网络连接等)读取数据。 OutputStream: OutputStream是一个抽象类,用于将数据写入目标。
使用输入流,FileInputStream 第一步: 1:打开流(即创建流) 第二步: 2:通过流读取内容 第三步: 3:用完后,关闭流资源 显然流是Java中的一类对象,要打开流其实就是创建具体流的对象,由于是读取硬盘上的文件,应该使用输入流。所以找到了InputStream类,但是InputStream是抽象类,需要使用它的具体实现类来创建对象就...
//InputStreampublicvoidreadFile()throwsIOException{try(InputStream input =newFileInputStream("src/readme.txt")){intn;while((n=input.read())!=-1) System.out.println(n); }//编译器在此自动为我们写入finally并调用close()}//OutputStreampublicvoidwriteFile()throwsIOException{try(OutputStream output...
它们之间的区别如下: 输入流(InputStream):输入流用于从数据源(如文件、网络连接、内存等)读取数据。它提供了读取数据的方法,如read()、read(byte[])等。输入流通常用于从外部获取数据并读取到程序中进行处理。 输出流(OutputStream):输出流用于向数据目标(如文件、网络连接、内存等)写入数据。它提供了写入数据的...
InputStream:继承自InputStream的流都是用于向程序中输入数据的,且数据单位都是字节(8位)。 OutputSteam:继承自OutputStream的流都是程序用于向外输出数据的,且数据单位都是字节(8位)。 Reader:继承自Reader的流都是用于向程序中输入数据的,且数据单位都是字符(16位)。
字节流和字符流的用法几乎完成全一样,区别在于字节流和字符流所操作的数据单元不同,字节流操作的单元是数据单元是8位的字节,字符流操作的是数据单元为16位的字符。 通过上面的介绍我们已经知道,字节流对应的类应该是InputStream和OutputStream,而在我们实际开发中,我们应该根据不同的媒介类型选用相应的子类来处理。
1.FileInputStream和FileOutputStream的应用 FileInputStream是InputStream的子类 文件输入流,可以从文件系统中的某个文件中获得输入字节,把他输入到我们的程序中; FileOutputStream 是OutputStream的子类,文件输出流, 可以从byte数组中接收数据并将数据写入某个文件。