说明
InputStream和OutputStream是Java标准库中最基本的IO流,它们都位于java.io包中,该包提供了所有同步IO的功能。
2、模块:java.io.InputStream 、 java.io.OutputStream
3、用法
3.1、read&write
二者都不是接口,而是抽象类,它们分别是所有输入流和输出流的超类。这两个抽象类定义了两个最重要的方法:
- int read():读取输入流的下一个byte,返回该byte表示的int值(0~255)。读到末尾,返回-1表示不能继续读了。
- void write( int b ):写一个byte到输出流。虽然传入的是int,但只会写入1 byte,即该int的最低8位表示字节的部分( b & 0xff )
public abstract int read() throws IOException; public abstract void write(int b) throws IOException;
3.2、实现类
FileInputStream:从文件流中读取数据
下面的代码演示了如何完整地读取一个FileInputStream的所有字节:
public void readFile throws IOException{ //创建一个FileInputStream对象 InputStream input = new FileInputStream("src/readme.txt"); for(;;){ int n = input.read(); //反复调用read(),直到返回-1 if(n==-1){ break; } System.out.println(n);//打印byte值 } input.close(); }
在计算机中,应用程序如果打开了有一个文件进行读写,完成后要及时关闭,以便OS把资源释放。
FileOutputStream:将若干字节写入文件流
下面代码演示了如何将多个bytes写入文件流:
public void writeFile() throws IOException{ OutputStream output = new FileOutputStream("out/readme.txt"); output.write(72);//H ... output.write(111);//o output.close(); }
每次写入1by