基本输入类:public abstract class InuputStream.
常用方法abstract int read(),int read(byte[] input),int read(byte[] input, int offet,int length),close().
子类都是把具体的数据读取为字节。
例如:
File file = new File("save.txt");
InputStream fileInputStream = new FileInputStream(file);
int x;
while((x = fileInputStream.read()) != -1){
System.out.print(x);
}
这里会输出一串数字,所以需要将x强制转换为char就会打印出相应的字符。
InputStream的基本方法是无参的read(),每次读取一个字节,且返回值为0~255的int值。
和OutputStream一样,每一读取一个字节效率不高,所以使用int read(byte[] input),int read(byte[] input, int offet,int length)这两个重载的方法,返回的int数字对应你已经读取的字节数。
例如:
byte[] input = new byte[1024];
int bytesReaded = in.read(input);
有一个共同点:三个read方法都以-1表示流结束。
当然bytesReaded不一定为1024,例如从网络读取数据的时候,网络较慢,所以使用循环直至读到数组慢为止是一个填充的好办法:
byte[] bytes= new byte[1024];
int start = 0;
int end = 1024;
while(start < end){
start += in.read(bytes , start , end - start);
}