一:引言
InputStream 和 OutputStream 两个抽象类,我们主要用其实现类来操作
二:InputStream
输入流,从文件当中读数据到程序当中,我们要站在程序得角度上。
package com.wyj.two;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;/*** 第二个程序:理解操作步骤(标准步骤)* 1:创建源(文件)* 2:选择流 (输入流 输出流)* 3:操作(从文件当中读数据,或者 、往文件中写数据)* 4:释放资源* * try 里面可以有多个步骤* 但finall只能有一个步骤 * 一旦 try 当中某条语句发生异常 则 不会继续执行 try后面的语句* 但finally当中 无论 是否 前面 出现异常 都会 执行其中的语句**/
public class Demo3_标准步骤 {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub//1.创建源和选择流InputStream is = null;try {is = new FileInputStream("text.txt");//操作int temp ;while((temp = is.read()) != -1){System.out.println((char)temp);}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {//释放资源if( is != null)is.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
三:OutputStream
package com.wyj.two;import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;/*** * 文件输出流 (程序当中 写出 数据 读入到文件当中 )* 步骤:* 1:创建源(如果文件本不存在 但是一旦创建就会出现)* 2:选择流* 3: 操作* 4:释放资源* * @author 王永杰**/
public class Demo5_文件输出流 {public static void main(String[] args) {
// //创建源头 ()OutputStream os = null;try {os = new FileOutputStream("dext.txt");String msg = "I want a girl with long hair!";byte date[] = msg.getBytes();// 字符串--->字节数组(编码)os.write(date, 0, date.length);os.flush();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if(os != null){try{os.close();}catch(IOException e){e.printStackTrace();}}}}
}
四:InputStream(分段输出)
package com.wyj.two;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;/*** 第一个程序:理解操作步骤* 1:创建源(文件)* 2:选择流 (输入流 输出流)* 3:操作(从文件当中读数据,或者 、往文件中写数据)* 4:释放资源* @author **/
public class Demo4_分段输出 {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub//1.创建源File src = new File("text.txt");InputStream is = null;try {//选择流is = new FileInputStream(src);//操作(分段输出)byte flush[] = new byte[1024];//每次读入1kB个字符int len = -1;//当文本什么也没有时输出 -1while( (len = is.read(flush))!= -1){// 字节数组--> 字符串 解码String str = new String(flush,0,len);//len为字符串的实际长度System.out.println(str);}//System.out.println(len);} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{//释放资源try {is.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
如有疑问欢迎指错!