第五篇 IO流技术(五)

文件字节输出流

package com.zzp.demo01;

import java.io.File;
import java.io.OutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStream;

/**
 * 
 * 四个步骤:分段读取(文件字节输出流)
 * 1、创建源
 * 2、选择流
 * 3、操作
 * 4、释放资源
 * @author java
 *
 */
public class IOTest04 {
    public static void main(String[] args) {
        //1、创建源
        File dest = new File("dest.txt");//如果不存在,就创建
        //2、选择流
        OutputStream os = null;
        try {
            os = new FileOutputStream(dest,true);//加true表示后面进行拼接,如果为false,则替换之前的内容
            //3、操作(写入操作)
            String msg = "我爱我的国家";
            byte[] datas = msg.getBytes();//将字符串转化成字节数组
            System.out.println(datas);
            os.write(datas, 0, datas.length);
            os.flush();//刷新
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(null != os){
                try {
                    os.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
}

 文件的拷贝

package com.zzp.demo01;

import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStream;

/**
 * 
 * 四个步骤:文件拷贝(文件字节输入流和文件字节输出流) 1、创建源 2、选择流 3、操作 4、释放资源
 * 
 * @author java
 *
 */
public class Copy {
    public static void main(String[] args) {
        copy("src/com/zzp/demo01/Copy.java", "2.txt");
    }

    public static void copy(String srcPath, String destPath) {
        // 1、创建源
        File src = new File(srcPath);//
        File dest = new File(destPath);// 目的地
        // 2、选择流
        InputStream is = null;
        OutputStream os = null;
        try {
            is = new FileInputStream(src);
            os = new FileOutputStream(dest, true);// 加true表示后面进行拼接,如果为false,则替换之前的内容
            // 3、操作(写入操作)
            byte[] flush = new byte[1024]; // 1k一读取
            int len = -1;// 设置默认长度为-1
            while ((len = is.read(flush)) != -1) {
                os.write(flush, 0, len);
            }
            os.flush();// 刷新
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {// 先打开的后关闭
            try {
                if (null != os) {
                    os.close();
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                if (null != is) {
                    is.close();
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

 文件字符输入流

package com.zzp.demo01;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;

/**
 * 
 * 四个步骤:分段读取(文件字符输入流)
 * 1、创建源
 * 2、选择流
 * 3、操作
 * 4、释放资源
 * @author java
 *
 */
public class IOTest05 {
    public static void main(String[] args) {
        //1、创建源
        File src = new File("1.txt");//相对路径
        //2、选择流
        Reader reader = null;
        try {
            reader = new FileReader(src);
            //3、操作  分段读取
            char[] flush = new char[1024]; //1k一读取
            int len = -1;//设置默认长度为-1
            while((len = reader.read(flush))!= -1){
                String str = new String(flush, 0, len);//将字节转化为字符串
                System.out.println(str);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(null != reader){
                //4、释放资源
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }         
    }
}

 文件字符输出流

package com.zzp.demo01;

import java.io.File;
import java.io.OutputStream;
import java.io.Writer;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStream;

/**
 * 
 * 四个步骤:(文件字符输出流)
 * 1、创建源
 * 2、选择流
 * 3、操作
 * 4、释放资源
 * @author java
 *
 */
public class IOTest06 {
    public static void main(String[] args) {
        //1、创建源
        File dest = new File("dest.txt");//如果不存在,就创建
        //2、选择流
        Writer writer = null;
        try {
            writer = new FileWriter(dest);//加true表示后面进行拼接,如果为false,则替换之前的内容
            //3、操作(写入操作)
            //写法一
            String msg = "我爱我的国家,i like my country";
            /*char[] datas = msg.toCharArray();//将字符串转化成字符数组
            System.out.println(datas);
            writer.write(datas, 0, datas.length);*/
            
            //写法二
            /*writer.write(msg);*/
            
            //写法三
            writer.append("我爱我的家乡").append("我爱我的生活");
            writer.flush();//刷新
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(null != writer){
                try {
                    writer.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
}

 

posted on 2018-08-27 23:49  奋斗的小刀001  阅读(95)  评论(0编辑  收藏  举报

导航