//File对象 C:/Users/28528/Desktop/java文件练习
//先构造一个FIle对象,传入文件路径(绝对路径,相对路径)
//绝对路径是以根目录开头的完整路径 如 C:/Users/java文件练习
//相对路径 如 /usr/bin/javac
//注意Windows平台使用\作为路径分隔符,
//在Java字符串中需要用\\表示一个\。Linux平台使用/作为路径分隔符
//可以用.表示当前目录,..表示上级目录。
File f1 = new File("sub\\javac"); // 绝对路径是C:\Docs\sub\javac
File f2 = new File(".\\sub\\javac"); // 绝对路径是C:\Docs\sub\javac
File f3 = new File("..\\sub\\javac"); // 绝对路径是C:\sub\javac
File f=new File("C:/Users/28528/Desktop/java文件练习");
File f4=new File("..");
System.out.println(f1+"\n"+f2+"\n"+f3+"\n"+f);
System.out.println(f1.getCanonicalPath());
String file=File.separator;
//File.separator 根据当前平台打印 "\" 或 "/" 静态变量separator系统分隔符
System.out.println(file);
//File对象三种形态 1.getPath 2.getAbsolutePath 3.getCanonicalPath
//1 返回构造方法传入的路径
//2 返回绝对路径
//3 返回规范路径 跟绝对路径类似
//File 调用方法
//1 判断File对象里的路径是否存在
File f1=new File("C:/Users/28528/Desktop/java文件练习");//目录
File f2=new File("C:\\Users\\28528\\Desktop\\demo1.txt");//文件
System.out.println(f2.isFile());//判断是否存在一个文件 true false
System.out.println(f1.isDirectory());//判断是否存在一个目录 true false
//2 获取File对象的文件的权限跟大小
// 用File对象获取到一个文件时,还可以进一步判断文件的权限和大小:
// boolean canRead():是否可读;
// boolean canWrite():是否可写;
// boolean canExecute():是否可执行;
// long length():文件字节大小。
System.out.println(f2.length());
//File创建文件和删除文件
String name1="默认文件夹1",name2="txt";//默认的文件名跟后缀
System.out.println("是否自定义文件名(y):");
char shu=in.next().charAt(0);
if(shu=='y'){
System.out.println("请输入文件名:");
name1=in.next();//输入创建的文件的名字
System.out.println("请输入后缀名:");
name2=in.next();//输入创建的文件的后缀
}
File file=new File("C:/Users/28528/Desktop/"+name1+"."+name2);
System.out.println(file);//输出文件名
if(file.isFile())//判断是否存在文件
{
if(file.delete()){//有文件将它删除
System.out.println("文件已被删除");
}
}else{//不存在就创建一个文件 创建的文件名需要自己给后缀
file.createNewFile();//创建一个文件
System.out.println("创建文件成功");
System.out.println("是否删除创建的文件(y):");
shu=in.next().charAt(0);
if(shu=='y'){
if(file.delete()){
System.out.println("文件已删除");
}
}
}
运行完后自动删除
{tabs-pane label="代码"}
//File临时文件
//临时文件的前缀和后缀
File file=File.createTempFile("这是一个临时文件",".txt");
//JVM退出时自动删除
file.deleteOnExit();
System.out.println(file.isFile());//判断文件是否存在
System.out.println(file.getAbsolutePath());//返回文件的绝对路径
{/tabs-pane} {tabs-pane label="图片"}
{/tabs-pane}
{tabs-pane label="代码"}
//File 获取目录下的文件和子目录名
File file=new File("C:/Users/28528/Desktop/");
File[] filelist=file.listFiles();//获取所有文件和子目录
for(File f:filelist){//利用foreach循环打印所有的文件跟子目录
System.out.println(f);
}
//FilenameFilter 符合文件要求的文件活目录返回
File[] filelist2=file.listFiles(new FilenameFilter(){
@Override
public boolean accept(File dir,String name){
return name.endsWith(".docx");//返回true表示接收该文件
//endsWith 筛选出指定的后缀
//startsWith 筛选出指定的前缀
}
});
printlnfiles(filelist2);//foreach循环打印的方法
{/tabs-pane} {tabs-pane label="printlnfiles方法"}
public static void printlnfiles(File[] f){
System.out.println("````````````````````");
if(f!=null){
for(File file:f){
System.out.println(file);
}
}
System.out.println("````````````````````");
}
和文件操作类似,File对象如果表示一个目录,可以通过以下方法创建和删除目录:
boolean mkdir():创建当前File对象表示的目录; boolean mkdirs():创建当前File对象表示的目录,并在必要时将不存在的父目录也创建出来; boolean delete():删除当前File对象表示的目录,当前目录必须为空才能删除成功。 {/tabs-pane} {tabs-pane label="图片"}
{/tabs-pane}
本文共 700 个字数,平均阅读时长 ≈ 2分钟