关于测试方式:Debug断点测试、打桩测试、Junit单元测试,File文件类,文件类的常用方法的课程笔记

IO流

IO流:
I -> Input 输入流(读文件)

​ 数据从文件中流向内存

O -> Output 输出流(写文件)

​ 数据从内存中流向文件

流:流向,把数据从一个地方带到另一个地方

一、测试方式:

1.Debug–断点测试
2.System.out.println()–打桩测试
3.junit --单元测试

junit :单元测试–以方法为单位,可以取代主方法

第三方jar包其实就是别人写好的代码:
1.将别热写好的代码工程,打包成jar文件
是将编译后的字节码文件进行打包
2.在自己的工程中 关联这个jar文件 --> 添加依赖
3.在代码中直接使用 import

Junit的使用步骤:
1.在工程中创建一个lib文件夹
2.将jar包复制到lib中
3.选择jar包,添加依赖 -> Add as Library
4.写一个测试类,测试方法不需要返回值,不需要参数
并且在方法上添加注解 @Test

二、File文件类

1.File的创建-构造方法

a.参数传入文件路径

​ new File(“ ”)

b.参数传入父路径 和 子路径

​ new File(“a”,“a.txt”)

注意:new出来的File对象只是存在于JVM内存中的一个对象,和本地磁盘有没有这个文件,没有任何关系!!

2.路径

a.绝对路径

window --从盘符出发

E:\IDEAproject\2107\day_18\a.txt

b.相对路径:a.txt

不固定的,会有一个参照对象

参照路径:E:\IDEAproject\2107\day_18

我们会把参考路径成为 - 当前目录

[ . ] 表示当前路径

[ . . ] 表示上一级目录,现在的参考值的上一层

3.通过相对路径获取绝对路径

1).getResource() - 【基于包下】

​ xx.class.getResource(“相对路径”).getPath()
​ xx.class -> 获取类的字节码文件对象

2).getClassLorder() - 【基于src】

​ xx.class.getClassLorder().getResource(“相对路径”).getPath()

3)两个方法的区别:

​ 得到的参考值不一样

4)理解:

①.类路径(classPath): src编译后的目录,也叫做编译根目录
②.以上两种方式得到的绝对路径,都是在编译后的根目录中,和src没有直接关系
③.在以后的开发中,我们一般是将文件存储在src下,因为src中的内容会自动编译到类路径中

4.使用绝对路径的优势
优势: 位置永远不会出错(针对个人电脑)
缺点: 如果存放在别人电脑上的,绝对路径有可能会出错
5.常用方法
	File getAbsoluteFile() - 获取绝对路径
  	boolean exists() - 判断该文件是否存在
  	boolean isDirectory() - 判断是否是目录
    boolean isFile()  - 判断是否是文件
  	boolean createNewFile() - 创建文件
  	boolean mkdir() - 创建单层目录
    boolean mkdirs() -创建多层目录
    String getName() - 获取文件的名字
    String getPath() - 获取文件路径名
    boolean renameTo(File dest) - 从一个文件移动到另一个文件
    String[] list() -列出file所有文件的名字
    File[] listFiles() -列出file所有文件的对象
    boolean delete()  -删除
    File[] listFiles(FileFilter filter)   
package test;

import org.junit.Test;

import java.io.File;
import java.io.IOException;

public class Work01 {

    @Test//1.创建两个文件对象,分别使用相对路径和绝对路径创建。
    public void test01() throws IOException {
        File file = new File("x.txt");
        file.createNewFile();
        File file1 = new File("src/test/j.txt");
        file1.createNewFile();
    }

    @Test//2.检查D盘下是否存在文件a.txt,如果不存在则创建该文件。
    public void test02() throws IOException {
        File file = new File("D:aaa/b.txt");
        boolean newFile = file.createNewFile();
        System.out.println(newFile);

    }

    @Test//3.在D盘下创建一个名为bbb的文件夹。
    public void test03(){
        File bbb = new File("D:aaa");
        boolean mkdirs = bbb.mkdirs();
    }

    @Test//4.在D盘下创建一个名为ccc的文件夹,要求如下:
       // 1.ccc文件夹中要求包含bbb子文件夹
       // 2.bbb子文件夹要求包含aaa文件夹
    public void test04(){
        File bbb = new File("D:ccc/bbb/aaa");
        boolean mkdirs = bbb.mkdirs();
    }

    @Test//5.获取D盘aaa文件夹中b.txt文件的文件名,文件大小,
            //  文件的绝对路径和父路径等信息,并将信息输出在控制台。
    public void test05(){
        File file = new File("D:aaa/b.txt");
        String name = file.getName();
        System.out.println(name);
        long length = file.length();
        System.out.println(length);
        File absoluteFile = file.getAbsoluteFile();
        System.out.println(absoluteFile);
        String parent = file.getParent();
        System.out.println(parent);

    }


    @Test// 6.1.判断File对象是否是文件,是文件则输出:xxx是一个文件,否则输出:xxx不是一个文件。
    public void test06(){
        File file = new File("D:aaa/b.txt");
        boolean file1 = file.isFile();
        if(file1==true){
            System.out.println("是文件");
        }else {
            System.out.println("不是文件");
        }
    }

    @Test// 6.2.判断File对象是否是文件夹,是文件夹则输出:xxx是一个文件夹,否则输出:xxx不是一个文件夹。(xxx是文件名或文件夹名)
    public void test07(){
        File file = new File("D:aaa");
        boolean directory = file.isDirectory();
        if(directory==true){
            System.out.println("是文件夹");
        }else {
            System.out.println("不是文件夹");
        }
    }

    @Test// 7.删除文件 例如: a.txt
    public void test08(){
        File file = new File("src/test/Demo02.java");
        file.delete();
    }
    @Test// 8.删除目录[空目录] 例如: dir
    public void test09(){
        File file = new File("bbb");
        file.delete();
    }

    @Test// 9.删除目录[非空目录] 例如: test/a/a.txt
    public void test10(){
        File file = new File("ccc");
       deleteFile(file);
    }

    private void deleteFile(File file){
        File[] files = file.listFiles();
        if(files!=null){
            for (File f:files) {//有可能遍历出来的文件是null值,出现空指针异常
                deleteFile(f);
            }
        }

        file.delete();

    }

    @Test
    public void test11(){
        File file = new File("dirs");
        delete(file);
    }
    public void delete(File file){
        File[] list = file.listFiles();
        for (File ff:list) {
            if (ff.isFile()){
                ff.delete();
            }if (ff.isDirectory()){
                delete(ff);
                ff.delete();
            }
        }
        file.delete();
    }


}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值