欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java IO-文件流-文件内容复制

程序员文章站 2024-03-04 16:37:11
...

文件流,就是程序和文件打交道,此时的文件是纯文本文件。
分为四个:

  • FileInputStream
  • FileOutputStream
  • FileReader
  • FileWriter

    代码演示一下:

import java.io.*;


public class FilleStreamDemo {
    public static void main(String[] args) throws IOException {
        File file=new File("a.txt");

        //1.演FileOutputStream-Writer
                OutputStream out=new FileOutputStream(file,true);
                //
                String s="abc";
                //将字符串转换为字符数组写入文件中
                byte[] b=s.getBytes();
                out.write(b);
                out.close();

        //2.演示FileInputStream-Reader
        InputStream in=new FileInputStream(file);
        //读取文件的信息,存储到b数组里面
        in.read(b);
        //输出形式为数组,【97,98,99】
        System.out.println(Arrays.toString(b));
        //输出形式为字符串:abc
        System.out.println(new String(b));
        in.close();
    }
}

文件复制操作-字节流

import java.io.*;

public class FilleStreamDemo {
    public static void main(String[] args) throws IOException {
        File file=new File("a.txt");
        File file2=new File("b.txt");

        InputStream in = new FileInputStream(file);
        OutputStream out = new FileOutputStream(file2, true);
        byte[] b=new byte[4];//创建缓存区,存储读取的数据
        int len=-1;//表示已经读取了多少个字节,如果len返回-1,表示已经读到最后

        while((len=in.read(b))!=-1){
            //打印出读取的数据
            System.out.println(new String(b,0,len));
            out.write(b,0,len);
        }
        in.close();
        out.close();
    }
}

文件复制操作-字符流

public class FileCoDemo {
    public static void main(String[] args) throws Exception {
        File sre=new File("java/a.txt");
        File dest=new File("java/b.txt");
        Reader in=new FileReader(sre);
        Writer out=new FileWriter(dest);

        char[] ch=new char[1024];
        int len=-1;
        while((len=in.read(ch))!=-1){
            System.out.println(new String(ch,0,len).toString());
            out.write(ch,0,len);            
        }
        in.close();
        out.close();        
    }
}

文件拷贝案例-拷贝指定目录下的指定类型文件到指定目录

java IO-文件流-文件内容复制

public class FileProjectDemo {
    public static void main(String[] args) throws Exception {
        //文件拷贝案例-拷贝指定目录下的指定类型文件到指定目录

        //创建源目录
        File sreF=new File("java");
        //创建目的目录
        File destF=new File("text");
        //获取源目录里面的指定类型文本文件
        File[] fs=sreF.listFiles(new FilenameFilter(){
            @Override
            public boolean accept(File dir, String name) {
                //将以“.java”结尾的文件保存到数组fs里面
                return new File(dir,name).isFile()&&name.endsWith(".java");
            }
        });
        //迭代出每一个.java文件并复制。
        for(File f:fs){
        //创建读写流
            InputStream in=new FileInputStream(f);
            //将符合条件的文件复制到目录文件
            OutputStream out = new FileOutputStream(new File(destF,f.getName()));
            byte[] b=new byte[1024];
            //对每一个文件里的内容进行复制
            int len = -1;//表示已经读取了多少个字节,如果len返回-1,表示已经读到最后
            while ((len = in.read(b)) != -1) {
                //将缓存区b中的内容写入到指定的文件对象里
                out.write(b, 0, len);
            }
            //关闭资源
            in.close();
            out.close();                
        }
    }
}