java InputStream的使用
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操作的是字节、实现类分为几个方向、内存、本地文件、网络、其他线程管道