@每天都要敲代码

@每天都要敲代码

目录

一:apache-common包的使用,快速完成IO操作

1. IOUtils类的使用

2. FileUtils类的使用


一:apache-common包的使用,快速完成IO操作

第一种方式:在项目的根目录下创建一个目录,把jar包拷贝进去,然后右击鼠标点击Add as Library添加进去 

JavaSE补充 | apache-common包的使用,快速完成IO操作-LMLPHP

第二种方式:File--->Project Structure--->Libraries,进行添加

JavaSE补充 | apache-common包的使用,快速完成IO操作-LMLPHP

1. IOUtils类的使用

常用方法:

- 静态方法:IOUtils.copy(InputStream in,OutputStream out)
- 静态方法:IOUtils.closeQuietly

①copy()方法,静态方法,传递字节流,实现文件复制;参数一个是文件的字节流输入对象,另一个是文件的字节流输出对象。
②closeQuietly()方法,静态方法,(任意流对象)悄悄的释放资源,自动处理close()方法抛出的异常

例:使用字节流,实现文件的拷贝,例如:图片的复制

    @Test
    public void test5() {
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try {
            // 使用一个字节流实现文件的复制(比如图片)
            File srcFile = new File("C:\\Users\\86177\\Pictures\\桌面壁纸\\7.jpg");
            File destFile = new File("C:\\Users\\86177\\Pictures\\桌面壁纸\\77.jpg");
            // 创建字节流对象
            fis = new FileInputStream(srcFile);
            fos = new FileOutputStream(destFile);
            // 调用方法进行拷贝
            IOUtils.copy(fis,fos);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            // 关闭资源
            IOUtils.closeQuietly(fis);
            IOUtils.closeQuietly(fos);
        }
    }

注:使用下面讲的FileUtils类的copyFile()方法,传两个File对象也可以完成以上的操作。

2. FileUtils类的使用

常用方法:

- 静态方法:void copyDirectoryToDirectory(File src,File dest)             
- 静态方法:void writeStringToFile(File file,String content)
- 静态方法:String readFileToString(File file)
- 静态方法:void copyFile(File srcFile,File destFile)

①copyDirectoryToDirectory()方法, 静态方法,整个目录的复制,自动进行递归遍历; 参数是两个目录的File;src:要复制的文件夹路径、dest:要将文件夹粘贴到哪里去

void copyDirectoryToDirectory(File src,File dest):

例:将一个目录下所有的内容拷贝到另一个目录(会进行递归拷贝)

    @Test
    public void test1()  {
        File srcFile = new File("C:\\dev\\Mysql8");
        File destFile = new File("G:\\");
        // 调用方法进行复制,可以递归复制目录
        try {
            FileUtils.copyDirectoryToDirectory(srcFile,destFile);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // 复制成功
        System.out.println("递归复制成功");
    }

②writeStringToFile()方法, 静态方法,将内容content写入到file中,参数是文件的File对象

void writeStringToFile(File file,String content)

例:讲一个字符串“abcd”写入到file.txt文件中去

    @Test
    public void test2() {
        File file = new File("file.txt");
        // 调用方法进行写入操作
        try {
            FileUtils.writeStringToFile(file,"abcd");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // 写入成功
        System.out.println("写入成功");
    }

③ readFileToString()方法, 静态方法,读取文件内容,并返回一个String;参数是文件的File对象

String readFileToString(File file)

例:读取某个文件的内容到输出台上

    @Test
    public void test3() {
        File file = new File("C:\\dev\\hmdp.sql");
        // 调用方法进行读取,内容返回的是一个字符串
        String readFileToString = null;
        try {
            readFileToString = FileUtils.readFileToString(file);// 也可以多传一个参数,指定字符集
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // 读取成功
        System.out.println(readFileToString);
        System.out.println("读取成功");
    }

④copyFile()方法, 静态方法,普通的文件复制,将一个文本文件拷贝到另一个目录下的文本文件中(区别于copyDirectoryToDirectory递归拷贝);参数一个是文件的File对象,另一个也是文件的File对象(相当于拷贝过去后并起了名)

例:将一个文件拷贝到另一个目录当中去并起名

    @Test
    public void test4()  {
        File srcFile = new File("C:\\dev\\hmdp.sql");
        File destFile = new File("G:\\hmdb-2.sql");
        // 将一个文件拷贝到另一个目录下
        try {
            FileUtils.copyFile(srcFile,destFile);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // 复制成功
        System.out.println("复制成功");
    }
04-22 11:05