一、文件,什么是文件?
文件就是保存数据的地方,例如经常使用的Word文件,Excel等都是文件,既可以保存一张图片,也可以保存视频,声音...
1、文件流
文件在程序中是以流的形式来操作的
流:数据在数据源(文件)和程序(内存)之间经历的路径
输入流:数据从数据源(文件)到程序(内存)的路径
输出流:数据从程序(内存)到数据源(文件)的路径
2、文件类File
File类描述了文件本身的属性,它直接处理文件和文件系统。File对象用来获取或处理与磁盘文件相关的信息,例如权限,时间,日期和目录路径。
常用方法及解释:
exists():判断文件否存在
isFile():判断是否为文件
isDirectory():判断是否为文件夹
mkdir():创建目录,mkdirs():创建多级目录
createNewFile():创建一个新文件,文件内容为空
getName():获取文件名称
getPath():获取文件相对路径
getAbsolutePath():获取文件绝对路径
getParent():获取父级文件路径,如没有指定父目录,则返回null
length():表示文件的长度大小,字节
list():返回一个字符串数组,指定此路径名表示的目录中的文件或目录
listFiles():返回一个抽象路径名数组,表示目录中的文件
delete():删除路径名表示的文件或目录,当前目录下包含文件夹或文件的(非空)目录不能直接删除,要把里面的文件依次删除之后才可删除当前目录。
renameTo(File dest):重命名此抽象路径表示的文件
操作:(1)创建文件对象相关构造器和方法:3种常用方法
package io;
import java.io.File;
import java.io.IOException;
public class Ddd {
public static void main(String[] args) throws IOException {
//创建File对象 的3种常用方法
// 1、new File(String pathname)
/* File file1 = new File("f:\\anzhuo\\a.txt");
file1.createNewFile();*/
// 2、new File(File parent,String child)
/* File file2 = new File("f:\\anzhuo","a.txt");
file2.createNewFile();*/
// 3、new File(String parent,String child)
File file = new File("f:\\anzhuo");
File file3 = new File(file, "a.txt");
file3.createNewFile();
}
}
(2) File对象方法使用:
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) throws IOException {
File f=new File("F:/a/b/c/txt");//创建一个File对象
if(f.exists()) {//判断文件是否存在
System.out.println(f.length());//获取文件大小
//必须确保文件存在时,才可以使用isDirectory和isFile,否则方法无效
if(f.isDirectory()) {//判断是否是文件夹
System.out.println("文件夹");
}
if(f.isFile()) {//判断是否为文件
System.out.println("文件");
}else {
//创建目录
//f.mkdirs();//可以创建多级目录
f.mkdir();//只能创建一个目录,确保父目录必须存在
//创建文件
f.createNewFile();//创建一个新文件,文件内容为空
}
// System.out.println(f.getPath());//获取文件相对路径
// System.out.println(f.getAbsolutePath());//获取文件绝对路径
// System.out.println(f.getName());//获取文件名称
//System.out.println(f.delete());//删除文件,当前目录下包含文件夹或者文件(非空)不能直接删除,目录只能删除空目录,文件可直接删除
//删除非空目录时,先删除里面的文件
File[] fs=f.listFiles();//遍历文件
for (File ff:fs) {
ff.delete();
}
System.out.println(f.getParent());//获取父级文件的路径
System.out.println(f.getParentFile().getParentFile().getPath());//获取文件的相对路径
}
}
例题://找出该目录下所有的文件夹和文件,打印输出路径或名称,找出最大的文件
import java.io.File;
import java.io.IOException;
public class FileDemo1 {
public static void main(String[] args) throws IOException {
File f1=new File("D:\\animal");
File files[]=f1.listFiles();
long max=0; //最大值初始值
File fmax=null;
for(File ff:files) {
if(ff.isFile()) {//文件
long size=ff.length();
if(size>max) {
max=size;
fmax=ff;
}
System.out.println("文件---"+ff.getPath()+"---size:"+ff.length());
}else {//目录
System.out.println("目录---"+ff.getPath());
}
}
System.out.println("最大的文件"+fmax.getPath()+"--size---"+fmax.length());
}
}