目录
File
成员方法(判断和获取)
成员方法(创建和删除)
成员方法(获取并遍历)
IO流
FileOutputStream
FileInputStream
文件拷贝
前言:学习JAVA的第十八天(基础)-CSDN博客
File
- File对象就表示一个路径,可以是文件的路径、也可以是文件夹的路径
- 这个路径可以是存在的,也允许是不存在的
方法:
方法名 | 说明 |
---|---|
File(String pathname) | 根据文件路径创建文件对象 |
File(String parent,String child) | 根据父路径名字符串和子路径名字符串创建文件对象 |
File(File parent,String chlid) | 根据父路径对应文件对象和子路径名字符串创建文件对象 |
测试类
public static void main(String[] args) {
//根据文件路径创建文件对象
String str = "D:\\FileDemo\\a.txt";
File f1 = new File(str);
System.out.println(f1);//D:\FileDemo\a.txt
//父级路径:D:\FileDemo
//子级路径:a.txt
String parent = "D:\\FileDemo";
String child = "a.txt";
File f2 = new File(parent,child);
System.out.println(f2);//D:\FileDemo\a.txt
//把File表示的路径和String表示的进行拼接
File parent2 = new File("D:\\FileDemo");
String child2 = "a.txt";
File f3 = new File(parent2,child2);
System.out.println(f3);//D:\FileDemo\a.txt
}
成员方法(判断和获取)
方法名称 | 说明 |
---|---|
boolean isDirectory() | 判断此路径名表示的File是否为文件夹 |
boolean isFile() | 判断此路径名表示的File是否为文件 |
boolean exists() | 判断此路径名表示的File是否存在 |
long length() | 返回文件的大小(单位字节) |
String getAbsolutePath() | 返回文件的绝对路径 |
String getPath() | 返回定义文件使用的路径 |
String getName() | 返回文件的名称,带后缀 |
long lastModified() | 返回文件最后的修改时间(时间毫秒值) |
成员方法(创建和删除)
方法名 | 说明 |
---|---|
boolean createNewFile() | 创建一个新的空的文件 |
boolean mkdir() | 创建单级文件夹 |
boolean mkdirs() | 创建多级文件夹 |
boolean delete() | 删除文件、空文件夹 |
成员方法(获取并遍历)
方法名 | 说明 |
static File[] listRoots() | 列出可用的文件系统根 |
String[] list() | 获取当前路径下的所有内容 |
String[] list(FilenameFilter filter) | 利用文件名过滤器获取当前路径下的所有内容 |
File[] listFiles() | 获取当前路径下的所有内容 |
File[] listFiles(FileFilter filter) | 利用文件名过滤器获取当前路径下的所有内容 |
File[] listFiles(FilenameFilter filter) | 利用文件名过滤器获取当前路径下的所有内容 |
IO流
存储和读取数据的解决方案
IO流分类:
IO流体系:
FileOutputStream
操作本地文件的字节输出流,可以把程序中的数据写到本地文件中。
测试类
public static void main(String[] args) throws IOException {
//创建对象
FileOutputStream fos = new FileOutputStream("student\\a.txt");
//书写数据
fos.write(97);
//释放资源
fos.close();
}
public static void main(String[] args) throws IOException {
//创建对象 续写
FileOutputStream fos = new FileOutputStream("student\\a.txt",true);
//换行符
String str = "\r\n";
fos.write(str.getBytes());
//书写数据
fos.write(98);
//释放资源
fos.close();
}
FileInputStream
操作本地文件的字节输入流,可以把本地文件中的数据读取到程序中来。
测试类
public static void main(String[] args) throws IOException {
//创建对象
FileInputStream fis = new FileInputStream("student\\a.txt");
//循环读出数据
int b = 1;
while((b=fis.read() )!= -1){
System.out.print((char) b);//abcd
}
//释放资源
fis.close();
}
文件拷贝
小文件拷贝,边读边写(字节)。
测试类
public static void main(String[] args) throws IOException {
//创建对象
FileInputStream fis = new FileInputStream(" D:\\java\\copy\\preview.jpg");
FileOutputStream fos = new FileOutputStream("student\\copy.jpg");
//边读边写
int b ;
while((b=fis.read()) != -1){
fos.write(b);
}
//释放资源
fos.close();
fis.close();
}
大文件拷贝,一次读写多个字节数据
测试类
public static void main(String[] args) throws IOException {
//创建对象
FileInputStream fis = new FileInputStream(" D:\\java\\java.mp4");
FileOutputStream fos = new FileOutputStream("student\\copy.mp4");
//边读边写
int len;
//一次读3M
byte[] bytes = new byte[1024 * 1024 * 3 ];
while((len = fis.read(bytes)) != -1){
//读多少写多少
fos.write(bytes,0,len);
}
//释放资源
fos.close();
fis.close();
}