1.Junit单元测试框架(测试方法)
①为需要测试的业务类,定义对应的测试类,并为每个业务方法,编写对应的测试方法(必须:公共 无参 无返回值)
②测试方法上必须声明@Test注解,然后在测试方法中,编写代码调用被测试的业务方法进行测试
③如果测试通过是绿色,测试失败是红色
2.Junit框架的常见注解
3.注解
作用:让其他程序根据注解信息来决定怎么执行该程序
注意:注解可以用在类上,构造器上,方法上,成员变量上,参数上,等位置处
4.File
①创建对象
File对象既可以代表文件,也可以代表文件夹
File封装的对象仅仅是一个路径名,这个路径可以是存在的,也允许是不存在的
②方法:判断文件类型,获取文件信息
// 1.创建文件对象,指代某个文件
File f1 = new File("C:\\Users\\liang\\OneDrive\\デスクトップ\\新建 文本文档.txt");
// 2.判断当前文件对象,对应的文件路径是否存在,存在返回true
System.out.println(f1.exists());// true
// 3.判断当前文件对象指代的是否是文件,是文件返回true,反之
System.out.println(f1.isFile()); // true
// 4.判断当前文件对象指代的是否是文件夹,是文件夹返回true,反之
System.out.println(f1.isDirectory());// false
// 5.获取文件的名称 包含后缀
System.out.println(f1.getName());// 新建 文本文档.txt
// 6.获取文件的大小,返回字节个数
System.out.println(f1.length());// 540
// 7.获取文件的最后修改时间
System.out.println(f1.lastModified());// 1722664222184
// 8.获取创建文件对象时,使用的路径
File f2 = new File("file-io-app\\src\\itheima.txt");
System.out.println(f2.getPath());// file-io-app\src\itheima.txt
// 9.获取绝对路径
File f3 = new File("file-io-app\\src\\itheima.txt");
System.out.println(f3.getAbsolutePath());// C:\java-learning\java-note\file-io-app\src\itheima.txt
③方法:创建文件,删除文件
// 1.创建一个新文件(文件内容为空),创建成功返回true,反之
File f1 = new File("C:/resource/itheima2.txt");
System.out.println(f1.createNewFile());
// 2.用于创建文件夹,注意,只能创建一级文件夹
File f2 = new File("C:/resource/aaa");
System.out.println(f2.mkdir());
// 3.用于创建文件夹,注意,可以创建多级文件夹
File f3 = new File("C:/resource/bbb/ccc/ddd");
System.out.println(f3.mkdirs());
// 4.删除文件或者空文件,注意,不能删除非空文件
System.out.println(f1.delete());
System.out.println(f2.delete());
④方法:遍历文件夹
// 1.获取当前目录下所有的“一级文件名称”到一个字符串数组中去返回
File f1 = new File("C:\\code");
String[] names = f1.list();
for (String name : names) {
System.out.println(name);
// javasepro
//得奖的是
//汪苏泷
//雨天
}
// 2.重点:获取当前目录下所有的“一级文件对象”到一个文件对象数组中去返回
File[] files = f1.listFiles();
for (File file : files) {
System.out.println(file.getAbsolutePath());
// C:\code\javasepro
//C:\code\得奖的是
//C:\code\汪苏泷
//C:\code\雨天
5.输入流(input):负责把数据读到程序中去
⭐方法:read
①字节输入流(FileInputStream)
// 1.创建文件字节输入流管道,与源文件接通
InputStream is = new FileInputStream(("file-io-app\\src\\itheima02.txt"));
// 2.开始读取文件中的字节数据,每次读取多个字节
// 每次读取多个字节到字节数组中去,返回读取的字节数量,读取完毕会返回-1
byte[] buffer = new byte[3];
int len;// 记住每次读取了多少个字节
while ((len = is.read(buffer)) != -1){
// 注意:读取多少 倒出多少
String rs = new String(buffer,0,len);
System.out.print(rs);// abc66
}
is.close();// 关闭流
②字符输入流(FileReader)
try(
// 1.创建一个文件字符输入流管道与源文件接通
Reader fr = new FileReader("io-app2\\src\\itheima01.txt");
) {
// 2.每次读取多个字符
char[] buffer = new char[3];
int len;// 记住每次读取了多少个字符
while ((len = fr.read(buffer)) != -1){
// 读取多少 倒出多少
System.out.print(new String(buffer, 0, len));
}
} catch (Exception e) {
e.printStackTrace();
}
6.输出流(output):负责写数据出去
⭐方法:write
①字节输出流(FileOutputStream)
// 1.创建文件字节输入流管道,与源文件接通
OutputStream os =
new FileOutputStream("file-io-app\\src\\itheima04out.txt",true);
// 2.开始写字节数据出去了
os.write(97);// 97就是一个字节 代表a
os.write('b');// 'b'也是一个字节
// getBytes方法将字符串 "我爱你中国abc" 转为字节数组
byte[] bytes = "我爱你中国abc".getBytes();
os.write(bytes);
// 将字节数组的前 15 个字节写入文件
os.write(bytes,0,15);
// 换行符
os.write("\r\n".getBytes());
os.close();// 关闭流
②字符输出流(FileWriter)
try(
//0.创建一个文件字符输出流管道与源文件接通
Writer fw = new FileWriter("io-app2\\src\\itheima02out.txt",true);
) {
// 1.写一个字符出去
fw.write('a');
fw.write(97);
fw.write('磊');// 写一个字符出去
fw.write("\r\n");// 换行
// 2.写一个字符串出去
fw.write("我爱你中国abc");
// 3.写字符串的一部分出去
fw.write("我爱你中国abc",0,5);
// 4.写一个字符数组出去
char[] buffer = {'黑','马','a','b','c'};
fw.write(buffer);
// 5.写字符数组的一部分出去
fw.write(buffer,0,2);
} catch (Exception e) {
e.printStackTrace();
}
7.缓冲流
对原始流进行包装,以提高原始流读写数据的性能
①.字节缓冲输入流/输出流(BufferedInputStream/BufferedOutputStream)
②.字符缓冲输入流(BufferedReader)
⭐按照行读取字符:readLine,读取一行数据返回,如果没有数据可读了,会返回null