IO_字节流_节点流_文件读取_写出_追加文件_拷贝文件JAVA147-148

来源:互联网 发布:淘宝收藏链接在哪里 编辑:程序博客网 时间:2024/05/23 11:57

来源:http://www.bjsxt.com/
一、S02E147_01IO_字节流、节点流、文件读取、写出、追加文件
1.读取文件
a.建立联系:File对象 源头
b.选择流:文件输入流 InputStream FileInputStream
c.操作:byte[] car = new byte[1024]; + read + 读取大小
输出
d.释放资源:关闭

package com.test.io.stream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;/** * 1.读取文件    a.建立联系:File对象   源头    b.选择流:文件输入流 InputStream FileInputStream    c.操作:byte[] car = new byte[1024];   + read + 读取大小              输出    d.释放资源:关闭 */public class FileRead {    /**     * @param args     */    public static void main(String[] args) {        //a.建立联系:File对象        File src = new File("G:/java/test/1.txt");        //b.选择流:文件输入流   InputStream FileInputStream        InputStream is = null;//提升作用域        try {            is = new FileInputStream(src);            //c.操作:不断读取            byte[] car = new byte[10];//缓冲数组            int len = 0;//接收实际读取大小            //循环读取            while(-1 != (len = is.read(car))){                //输出:字节数组转为字符串                String info = new String(car,0,len);                System.out.print(info);            }        } catch (FileNotFoundException e) {            e.printStackTrace();            System.out.println("文件不存在");        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();            System.out.println("读取文件失败");        } finally{            //d.释放资源:关闭            if(null != is){                try {                    is.close();                } catch (IOException e) {                    e.printStackTrace();                    System.out.println("关闭文件输入流失败");                }            }        }    }}

2.写出文件
a.建立联系:File对象 目的地
b.选择流:文件输出流 OutputStream FileOutputStream
c.操作:write() + flush()
d.释放资源:关闭

package com.test.io.stream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;/** * 2.写出文件    a.建立联系:File对象   目的地    b.选择流:文件输出流 OutputStream  FileOutputStream     c.操作:write() + flush()    d.释放资源:关闭 */public class FileWrite {    public static void main(String[] args) {        //a.建立联系:File对象 目的地        File des = new File("G:/java/test/test.txt");        //b.选择流:文件输出流   OutputStream  FileOutputStream         OutputStream os = null;        try {            os = new FileOutputStream(des,true);//true:以追加的形式写出文件;false:覆盖            //c.操作:write() + flush()            String str = "anything is good \r\n";            //字符串转字节数组            byte[] data = str.getBytes();            os.write(data,0,data.length);            os.flush();//强制刷新出去        } catch (FileNotFoundException e) {            e.printStackTrace();            System.out.println("文件未找到");        } catch (IOException e) {            e.printStackTrace();            System.out.println("文件写出失败");        } finally{            //d.释放资源:关闭            if(null != os){                try {                    os.close();//关闭时会flush                } catch (Exception e2) {                    System.out.println("关闭输出流失败");                }            }        }    }}

二、S02E148_01IO_拷贝文件
3.文件拷贝, 程序为桥梁
a.建立联系:File对象 源头和目的地
b.选择流:文件输入流 InputStream FileInputStream
文件输出流 OutputStream FileOutputStream
c.操作:拷贝
byte[] flush = new byte[1024];
int len = 0;
while(-1 != (len = 输入流.read(flush))){
输出流.write(flush,0,len)
}
输出流.flush
d.释放资源:关闭两个流

package com.test.io.stream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;/** * 3.文件拷贝,程序为桥梁    a.建立联系:File对象   源头和目的地    b.选择流:文件输入流 InputStream FileInputStream            文件输出流   OutputStream  FileOutputStream     c.操作:拷贝            byte[] flush = new byte[1024];            int len = 0;            while(-1 != (len = 输入流.read(flush))){                输出流.write(flush,0,len)            }            输出流.flush    d.释放资源:关闭两个流 */public class CopyFile {    public static void main(String[] args) {        String srcPath = "G:/java/test/background.jpg";        String desPath = "G:/java/test/100.jpg";        try {            copyFile(srcPath,desPath);        } catch (FileNotFoundException e) {            e.printStackTrace();            System.out.println("文件没有找到");        } catch (IOException e) {            e.printStackTrace();            System.out.println("文件拷贝失败或者关闭流失败");        }    }    /**     * 文件的拷贝,传入File参数     * @param src     * @param des     * @throws FileNotFoundException     * @throws IOException     */    public static void copyFile(File src,File des) throws FileNotFoundException,IOException {        //1.建立联系    源头(存在且为文件) + 目的地(文件可以不存在)        if(!src.isFile()){            throw new IOException("只能拷贝文件");        }        //des为存在的文件夹,不能建立与文件夹同名的文件        if(des.isDirectory()){            System.out.println(des.getAbsolutePath() + "不能建立与文件夹同名的文件");            throw new IOException(des.getAbsolutePath() + "不能建立与文件夹同名的文件");        }        //2.选择流        InputStream is = new FileInputStream(src);        OutputStream os = new FileOutputStream(des);        //3.文件拷贝    循环+读取+写出        byte[] flush = new byte[1024];        int len = 0;        //读出        while(-1 != (len = is.read(flush))){            //写出            os.write(flush,0,len);        }        os.flush();//强制刷出        //关闭流,先打开的后关闭        os.close();        is.close();    }    /**     * 文件的拷贝,传入String参数,路径     * @param srcPath     * @param desPath     * @throws FileNotFoundException     * @throws IOException     */    public static void copyFile(String srcPath,String desPath) throws FileNotFoundException,IOException {        copyFile(new File(srcPath),new File(desPath));    }}
0 0
原创粉丝点击