1、
1 package cn.kongxh.io3;
2 import java.io.File ;
3 import java.io.InputStream ;
4 import java.io.FileInputStream ;
5 public class InputStreamDemo01{
6 public static void main(String args[]) throws Exception{ // 异常抛出,不处理
7 // 第1步、使用File类找到一个文件
8 File f= new File("d:" + File.separator + "test.txt") ; // 声明File对象
9 // 第2步、通过子类实例化父类对象
10 InputStream input = null ; // 准备好一个输入的对象
11 input = new FileInputStream(f) ; // 通过对象多态性,进行实例化
12 // 第3步、进行读操作
13 byte b[] = new byte[1024] ; // 所有的内容都读到此数组之中
14 input.read(b) ; // 读取内容 网络编程中 read 方法会阻塞
15 // 第4步、关闭输出流
16 input.close() ; // 关闭输出流
17 System.out.println("内容为:" + new String(b)) ; // 把byte数组变为字符串输出
18 }
19 };
2、
1 package cn.kongxh.io3;
2 import java.io.File ;
3 import java.io.InputStream ;
4 import java.io.FileInputStream ;
5 public class InputStreamDemo02{
6 public static void main(String args[]) throws Exception{ // 异常抛出,不处理
7 // 第1步、使用File类找到一个文件
8 File f= new File("d:" + File.separator + "test.txt") ; // 声明File对象
9 // 第2步、通过子类实例化父类对象
10 InputStream input = null ; // 准备好一个输入的对象
11 input = new FileInputStream(f) ; // 通过对象多态性,进行实例化
12 // 第3步、进行读操作
13 byte b[] = new byte[1024] ; // 所有的内容都读到此数组之中
14 int len = input.read(b) ; // 读取内容
15 // 第4步、关闭输出流
16 input.close() ; // 关闭输出流\
17 System.out.println("读入数据的长度:" + len) ;
18 System.out.println("内容为:" + new String(b,0,len)) ; // 把byte数组变为字符串输出
19 }
20 };
3、
1 package cn.kongxh.io3;
2
3 import java.io.File ;
4 import java.io.InputStream ;
5 import java.io.FileInputStream ;
6 public class InputStreamDemo03{
7 public static void main(String args[]) throws Exception{ // 异常抛出,不处理
8 // 第1步、使用File类找到一个文件
9 File f= new File("d:" + File.separator + "test.txt") ; // 声明File对象
10 // 第2步、通过子类实例化父类对象
11 InputStream input = null ; // 准备好一个输入的对象
12 input = new FileInputStream(f) ; // 通过对象多态性,进行实例化
13 // 第3步、进行读操作
14 byte b[] = new byte[(int)f.length()] ; // 数组大小由文件决定
15 int len = input.read(b) ; // 读取内容
16 // 第4步、关闭输出流
17 input.close() ; // 关闭输出流\
18 System.out.println("读入数据的长度:" + len) ;
19 System.out.println("内容为:" + new String(b)) ; // 把byte数组变为字符串输出
20 }
21 };
4、
1 package cn.kongxh.io3;
2
3 import java.io.File ;
4 import java.io.InputStream ;
5 import java.io.FileInputStream ;
6 public class InputStreamDemo04{
7 public static void main(String args[]) throws Exception{ // 异常抛出,不处理
8 // 第1步、使用File类找到一个文件
9 File f= new File("d:" + File.separator + "test.txt") ; // 声明File对象
10 // 第2步、通过子类实例化父类对象
11 InputStream input = null ; // 准备好一个输入的对象
12 input = new FileInputStream(f) ; // 通过对象多态性,进行实例化
13 // 第3步、进行读操作
14 byte b[] = new byte[(int)f.length()] ; // 数组大小由文件决定
15 for(int i=0;i<b.length;i++){
16 b[i] = (byte)input.read() ; // 读取内容
17 }
18 // 第4步、关闭输出流
19 input.close() ; // 关闭输出流\
20 System.out.println("内容为:" + new String(b)) ; // 把byte数组变为字符串输出
21 }
22 };
5、
1 package cn.kongxh.io3;
2
3 import java.io.File ;
4 import java.io.InputStream ;
5 import java.io.FileInputStream ;
6 public class InputStreamDemo05{
7 public static void main(String args[]) throws Exception{ // 异常抛出,不处理
8 // 第1步、使用File类找到一个文件
9 File f= new File("d:" + File.separator + "test.txt") ; // 声明File对象
10 // 第2步、通过子类实例化父类对象
11 InputStream input = null ; // 准备好一个输入的对象
12 input = new FileInputStream(f) ; // 通过对象多态性,进行实例化
13 // 第3步、进行读操作
14 byte b[] = new byte[1024] ; // 数组大小由文件决定
15 int len = 0 ;
16 int temp = 0 ; // 接收每一个读取进来的数据
17 while((temp=input.read())!=-1){
18 // 表示还有内容,文件没有读完
19 b[len] = (byte)temp ;
20 len++ ;
21 }
22 // 第4步、关闭输出流
23 input.close() ; // 关闭输出流\
24 System.out.println("内容为:" + new String(b,0,len)) ; // 把byte数组变为字符串输出
25 }
26 };
总结:InputStream操作的是字节、实现类分为几个方向、内存、本地文件、网络、其他线程管道