1. File类型:
-
File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)
-
File类声明在java.io包下
-
File类中仅涉及关于文件或文件目录的创建、删除、重命名、修改时间、文件大小,如果要读取和写入,则需要使用IO流
-
File类的对象常会作为参数传递到流的构造器中,指明读取或写入的"终点".
构造器:
-
File(String filePath) //参数为文件路径,可以是相对路径也可以是绝对路径
-
File(String parentPath,String childPath) //父文件路径和子文件路径,通常子文件路径用相对路径
-
File(File parentFile,String childPath) //第一个参数为父文件类型,第二个参数为子文件的路径
相对路径:相较于某个路径下,指明的路径。
绝对路径:包含盘符在内的文件或文件目录的路径
File的常用方法:
-
getAbsolutePath():返回此路径名的绝对路径名字符串。
-
getName():返回由此路径名表示的文件或目录的名称
-
getPath():将此路径名转换为路径名字符串。
-
getParent():返回此路径名的父目录的路径名字符串,如果此路径名未命名为父目录,则返回 null
-
length():返回由此路径名表示的文件的长度
-
list():返回一个字符串数组,命名由此路径名表示的目录中的文件和目录。
-
listFiles():返回一个路径名数组,表示由该抽象路径名表示的目录中的文件。
-
isFile():测试此路径名表示的文件是否为普通文件。
-
isDirectory():测试此路径名表示的文件是否为目录。
-
exists():测试此路径名表示的文件或目录是否存在。
-
mkdir() 创建由此路径名命名的目录。
-
mkdirs() 创建由此路径名命名的目录,包括任何必需但不存在的父目录。
-
createNewFile() 当且仅当具有该名称的文件尚不存在时,原地创建一个由该路径名命名的新的空文件。
-
delete():删除该路径下的文件或者文件夹,如果删除的是文件夹,删除前需清空该文件夹
以上就是一些File的常用方法,API文档里还有很多,有需要可以再去查阅
注意:
File对象是内存中的对象,代表硬盘中实际存在的一个文件或者目录。
无论该路径下是否存在文件或者目录,都不影响File对象的创建。
Java中的删除不经过回收站,测试方法需谨慎!
2. IO流(部分):
1 .流的分类
- 操作数据单位:字节流、字符流
- 数据的流向:输入流、输出流
- 流的角色:节点流、处理流
-
流的体系结构:
字节流:
输出流:OutputStream
输入流:InputStream字符流:
输出流:Writer
输入流:Reader
以上四种流是所有流的抽象基类
其中字节流可以处理一切数据
字符流只能处理纯文本
输入输出是相对于程序和数据源而言的
运行程序生成数据叫做输出
将数据载入程序叫做输入
代码举例:
输出文本文档
@Test
public void test01() throws IOException {
//初始化一个文件类,指定要生成的文件路径
File file = new File("C:\\Users\\GraltofRivia\\Desktop\\a.txt");
if (!file.exists()) {
//如果文件不存在则创建该文件
file.createNewFile();
}
//初始化输出流,参数为文件路径
OutputStream os = new FileOutputStream(file);
//定义要输出的字符
byte[] bytes = new byte[] {97,98,99,100,101,102,103};
//调用输出流的输出方法
//write("要写入的数据",从第几位数开始写,写多少)
os.write(bytes,1,bytes.length-1);
//关闭输出流
os.close();
}
运行结果:
可以看到,输入的数字根据ascii转码成了字母
读取文本文档
@Test
public void test03() throws Exception {
File file = new File("C:\\Users\\GraltofRivia\\Desktop\\a.txt");
InputStream is = new FileInputStream(file);
int b;
//判断输入流是不是读到的最后,如果读到最后则返回-1
while((b=is.read()) != -1) {
//打印读到的字符
//如果不强转则会打印数字
System.out.print((char)b);
}
//关闭输入流
is.close();
}
运行结果: