本文总结下InputStream 的基本用法:
1 FileInputStream 通过文件获取字节流
InputStream in = new FileInputStream("f:\\f.txt");
while(in.available()>0){
System.out.print((char)in.read());
}
in.close();
2 BufferedInputStream 为输入流提供缓冲功能
InputStream in = new FileInputStream("f:\\f.txt");
BufferedInputStream bin = new BufferedInputStream(in);
DataInputStream din = new DataInputStream(bin);
while(din.available() > 0){
System.out.println(din.readLine());
}
bin.close();
in.close();
din.close();
3 ByteArrayInputStream 用于向内存中写入或读出字节信息
String str = "helloworld\nhelloworld\nhelloworld\n";
ByteArrayInputStream ais = new ByteArrayInputStream(str.getBytes());
while(ais.available() > 0){
System.out.print((char)ais.read());
}
4 StringBufferInputStream 已过时。此类读取的数据可以由字符串提供
String str = "helloworld\nhelloworld\nhelloworld\nhelloworld\nhelloworld\nhelloworld\nhelloworld\nhelloworld\n";
StringBufferInputStream bis = new StringBufferInputStream(str);
while(bis.available()>0){
System.out.print((char)bis.read());
}
5 LineNumberInputStream 输入流过滤器,提供追踪当前行号的功能
FileInputStream fis = new FileInputStream("f:\\f.txt");
LineNumberInputStream lis = new LineNumberInputStream(fis);
DataInputStream dis = new DataInputStream(lis);
while(dis.available() > 0){
System.out.println(lis.getLineNumber()+" : "+dis.readLine());
}
dis.close();
lis.close();
fis.close();