inputStream类 程序可以从中连续读取字节的对象叫输入流,在java中,用InputStream类来描述所有输入流的抽象概念。 InputStream类得方法: int read() 结束返回-1 如果没有结束,通道没有关闭,read()就会发生阻塞。 read()只读取一个字节的内容 二进制形式为11111111的数据,以byte类型表示为-1,以int类型表示为255,返回int的好处是返回最大值是255,最小值是0,不可能有-1出现,这样就可以与表示流的结束的-1进行区别。 int read(byte[] b) 读取的数据以int的范围为准,一个都读不到会发生阻塞。 int read(byte[] b, int off, int len) int skip(long n) 跳过n个字节再读取 int available() 在读取之前调用,检查流中是否有数据,如果有可以读取,以免发生阻塞。单独一个线程开一个read方法,这样减少cpu的开销。 void mark(int readlimit) 在输入流中建立一个标记 void reset() 和mark配合使用 boolean markSupported() void close() 关闭流,释放与流相关的资源。
OutputStream类得方法: void write(int b) void write(byte[] b) void write(byte[] b, int off, int len) void flush() read的数据先放入内存缓冲区,再从缓冲区输出到程序。 内存缓冲区中的内容清出内存,输出。 void close()
FileInputStream与FileOutputStream类 FileInoutStream和FileOutputStream类分别用来创建磁盘文件的输入流和输出流对象,通过它们的构造函数来指定文件路径和文件名。 创建FileInputStream实例对象时,指定的文件应当是存在和可读的。创建FileOutputStream实例对象时,如果指定的文件已经存在,这个文件中的原来内容将被覆盖清除。 对同一个磁盘文件创建FileInputStream对象的两种方式: 1.FileIputStream inOne = new FileInputStream("hello.test"); 2.File f = new File("hello.test"); FileInputStream inTwo = new FileInputStream(f); 创建FileOutputStream实例对象时,可以指定还不存在的文件名,不能指定一个已被其他程序打开了的文件。