2022-8-8 第六组 输入输出流 I/O 与测试

1.Junit

JUnit单元测试

 JUnit是一个Java语言单元测试框架。

 JUnit单元测试的好处:
  1.可以书写一些列的测试方法,对项目的所有的接口或者方法进行单元测试。
  2.启动后,自动化的测试。
  3.只需要查看最后的结果。
  4.每个单元测试的用例相对独立,由JUnit启动。
  5.添加,删除,屏蔽测试方法。

JUnit断言

  JUnit的所有的断言都包含Assert类中
  这个类提供了很多有用的断言来编写测试用例。
  只有失败的断言才会被记录。

  1.assertEquals:检查两个变量或等式是否平衡
  2.assertTrue:检查条件是否为真
  3.assertFalse:检查条件是否为假
  4.assertNotNull:检查对象是否不为空
  5.assertNull:检查对象是否为空

  断言不成功会抛异常,即使程序正常运行但是结果不正确,也会以失败结束

JUnit注解
1.Test
2.Before:在测试方法执行之前执行的方法
3.After 之后

命名规范:
单元测试类的命名:被测试类的类名 + Test

测试方法的命名:test + 被测试方法的方法名

测试方法:
1.不能有返回值
2.不能有参数列表
3.必须有Test注解

Stream编程

  容器对象功能的增强

  我们可以将流看做流水线,这个流水线是处理数据的流水线

  当我们使用一个流的时候,通常包括三个步骤:
  1.获取一个数据源
  2.执行操作获取想要的结果
  3.每次操作,原有的流对象不改变,返回一个新的Stream对象

  Stream有几个特性:
  1.Stream不存储数据,一般会输出结果
  2.Stream不会改变数据源,通常情况下会生成一个新的集合
  3.Stream具有延迟执行的特性,只有调用终端操作时,中间操作才会执行。


JDK8新增:
  1.函数式接口
  2.箭头函数(lambda表达式),不是java特有的。阉割版
  3.Optional类
  4.断言
  5.Stream编程

2.File类

1.1File类的构造函数

 File(String pathname) :将一个字符串路径封装成File对象
 File(String parent,String child):传入一个父级路径和子级路径
 File(File parent,String child):传入一个File类型的父级路径和子级路径

1.2File类创建和删除功能

boolean createNewFile():指定路径不存在该文件时时创建文件,返回true,否则返回false
boolean mkdir():当指定的单级文件夹不存在时创建文件夹并返回true,否则返回false  
boolean mkdirs():当指定的多级文件夹某一级文件夹不存在时,创建多级文件夹并返回true,否则返回false
boolean delete():删除文件或者删除单级文件夹

1.3File类的判断功能

boolean exists():判断指定路径的文件或文件夹是否存在
boolean isAbsolute():判断当前路路径是否是绝对路径
boolean isDirectory():判断当前的目录是否存在
boolean isFile():判断当前路径是否是一个文件
boolean isHidden():判断当前路径是否是隐藏文件

image

1.4File类的获取功能和修改名字功能

  File getAbsoluteFile():获取文件的绝对路径,返回File对象
  String getAbsolutePath():获取文件的绝对路径,返回路径的字符串
  String getParent():获取当前路径的父级路径,以字符串形式返回该父级路径
  File getParentFile():获取当前路径的父级路径,以字File对象形式返回该父级路径
  String getName():获取文件或文件夹的名称
  String getPath():获取File对象中封装的路径
  long lastModified():以毫秒值返回最后修改时间
  long length():返回文件的字节数
  boolean renameTo(File dest): 将当前File对象所指向的路径 修改为 指定File所指向的路径

image

//删除指定目录下所有文件和目录
public static void method(File file) {
	if(file.isDirectory()) {
		//干掉自己所有的子文件和子目录
		//获取所有的子文件和子目录
		File[] files = file.listFiles();
		for (File f : files) {
			if(f.isFile()) {
				//直接干掉他
				System.out.println(f.getName());
				f.delete();
			}
			else if(f.isDirectory()) {
				//继续查看是否还有文件和子目录
				method(f);
			}
		}
		
		//干掉自己
		System.out.println(file.getName());
		file.delete();
	}
}

image

//输出指定目录下的所有java文件名(不包含子目录)
public static void method2(File file) {
	if(file.isDirectory()) {
		File[] files = file.listFiles();
		for (File f : files) {
			//判断是否是文件对象
			if(f.isFile()) {
				if(f.getName().endsWith(".java")) {
					System.out.println(f.getName());
				}
			}
		}
	}
}



// 需求:输出指定目录下所有的java文件名(包含子目录)
	public static void method(File file) {
		if(file.isDirectory()) {
			File[] files = file.listFiles();
			for (File f : files) {
				//判断是否是文件对象
				if(f.isFile()) {
					if(f.getName().endsWith(".java")) {
						System.out.println(f.getName());
		}
				}
				else if(f.isDirectory()){
					//是一个目录对象
					method(f);
				}
			}
		}
posted @ 2022-08-08 22:18  阿萨德菩提子  阅读(38)  评论(0编辑  收藏  举报