JAVA20
File类
1、它是文件和目录路径名的抽象表示
2、文件和目录是可以通过File封装成对象的
3、对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的
1构造方法
public File(String pathnane):通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例
pubtic File(String parent, String child):从父路径名字符串和子路径名宁符串创建新的 Fle实例
public File(File pajgnt, String child)”:从父抽象路径名和子路径名字符串创建新的 Hle实例
常用方法
public String getAbsolutepathO :返回此File的绝对路径名字符串中,
public String getpathC):将此File转换为路径名字符串。
public String getNegO:返回由此File表示的文件或自录的名称。
public long 1ength():返回由此File表示的文件的长度
file类:
创建一个文件夹、文件
删除一个文件、文件夹
获取文件、文件夹
判断文件或者文件夹
对文件进行遍历
获取文件大小
file 是一个与操作系统无关的类
记住三个单词:
file:文件
directory:目录、文件夹
path:路径
package Demo01;
import java.io.File;
import java.io.IOException;
/*
-
file类:
-
创建一个文件夹、文件
-
删除一个文件、文件夹
-
获取文件、文件夹
-
判断文件或者文件夹
-
对文件进行遍历
-
获取文件大小
-
file 是一个与操作系统无关的类
-
记住三个单词:
-
file:文件
-
directory:目录、文件夹
-
path:路径
*/
public class Demo01File {
public static void main(String[] args) throws IOException {//路径分隔符 String pathSeparator=File.pathSeparator; System.out.println(pathSeparator);// Windows 是分号;linux :冒号 String Separator=File.pathSeparator; System.out.println(pathSeparator);//文件名称分隔符 \ linux: /root/home/ // 绝对路径C:\User\admin\ // 相对路径../../ //构造方法演示 //show01(); //show02("D:\\rxp\\java\\test"); //show03(""); //常用方法演示 //show04(""); //show05(""); show06(""); show07(""); show08(""); //show09(""); //show10(""); //show11(""); show12("");
}
private static void show12(String String) {
//如果路径不存在,直接返回false
File f1=new File(“D:\rxp\java\20\day20_code\hello.java”);
boolean b1=f1.delete();
System.out.println(b1);
//直接从硬盘删除,不会进入回收站
File f2=new File(“rxp\1\2\33\44”);//相对路径,会自动补齐D:\rxp\java\20\day20_code\
boolean b2=f2.delete();
System.out.println(b2);
}private static void show11(String String) {
File f1=new File(“D:\rxp\java\20\day20_code\hello.java”);
boolean b1=f1.mkdir();//
System.out.println(b1);File f2=new File("D:\\rxp\\java\\20\\day20_code\\rxp\\1\\2\\33\\44\\hello.java"); boolean b2=f2.mkdir();//递归创建文件夹 System.out.println(b2);
}
private static void show10(String String) throws IOException {
File f1=new File(“D:\rxp\java\20\day20_code\hello.java”);
boolean b1=f1.createNewFile();
System.out.println(b1);
//第二次执行返回false因为false文件存在File f2=new File("D:\\rxp\\java\\20\\day20_code\\新建文件夹"); //不要看文件名字,必须看类型 boolean b2=f2.createNewFile(); System.out.println(b2);
}
private static void show09(String String) {
File f1=new File(“D:\rxp\java\20\day20_code”);
if(f1.exists()) {//返回true,进入if语句
System.out.println(f1.isDirectory());//
System.out.println(f1.isFile());
}
System.out.println("=============");
File f2=new File(“D:\rxp\java\20\day20_code\classfive”);
if (f2.exists()) {//不存在返回false 所以不会进入if语句
System.out.println(f2.isDirectory());
System.out.println(f2.isFile());}
System.out.println("=============");
File f3=new File(“D:\rxp\java\20\day20_code\classfive”);
if (f2.exists()) {
System.out.println(f3.isDirectory());
System.out.println(f3.isFile());}
}
private static void show08(String String) {
File f1=new File(“D:\rxp\java\20\day20_code”);
System.out.println(f1.exists());//trueFile f2=new File("D:\\rxp\\java\\20\\day20_code\\classfive"); System.out.println(f2.exists());//false File f3=new File("D:\\rxp\\java\\20\\day20_code\\classfive"); System.out.println(f3.exists());//
}
private static void show07(String String) {
File f1=new File(“D:\rxp\java\20\day20_code”);
System.out.println(f1.length());
//文件夹大小0
File f2=new File(“D:\rxp\java\20\day20_code\classfive”);
System.out.println(f2.length());
//不存在的文件夹,文件夹大小0
File f3=new File(“D:\rxp\java\20\day20_code\classfive”);
System.out.println(f3.length());
//最后为文件的情况,文件夹存在,打印文件大小
File f4=new File(“D:\rxp\java\20\day20_code\classpath”);
System.out.println(f4.length());
//最后为文件的情况,文件夹存在,打印文件大小}
private static void show06(String String) {
File f1=new File(“D:\rxp\java\20\day20_code\hello.java”);
File f2=new File(“D:\rxp\java\20\day20_code”);
//获取的是构造方法传递路径结尾部分
System.out.println(f1.getName());
System.out.println(f2.getName());
}private static void show05(String String) {
File f1=new File(“D:\rxp\java\20\day20_code\hello.java”);
File f2=new File(“a.txt”);String path1=f1.getPath(); System.out.println(path1); System.out.println(f2.getPath()); System.out.println(f1); System.out.println(f1.toString());
}
private static void show04(String String) {
File f1=new File(“D:\rxp\java\test\hello.java”);
String absolutepath1=f1.getAbsolutePath();
System.out.println(absolutepath1);File f2=new File("D:\\rxp\\java\\test\\hello.java");//相对路径创建 //创建时候,放在项目路径下面 String absolutepath2=f2.getAbsolutePath(); System.out.println(absolutepath1);//获取绝对路径
}
private static void show03(String String) {
File parent=new File(“D:\rxp\java\test”);
File f1=new File(parent,“hello.java”);
System.out.println(f1);}
private static void show02(String parent,String child) {
File f1=new File(parent,child);
System.out.println(f1);}
private static void show01(String String) {
File f1=new File("D:\\rxp\\java\\test"); System.out.println(f1); //仅仅是创建File这个对象,不会检验路径正确与否 File f2=new File("D:\\\\rxp\\\\java\\\\test\\a.txt"); System.out.println(f2); File f3=new File("b.txt"); System.out.println(f3);
}
}
*构造方法作用;
*1.创建一个FileOutputStream对象
*2.根据构造方法传递文件/文件路径,创建空文件
*3.java->jvm(虚拟机)->os->会调用的驱动->把数据写入文件
package Demo02;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*
*构造方法作用;
*1.创建一个FileOutputStream对象
*2.根据构造方法传递文件/文件路径,创建空文件
*3.
*java->jvm(虚拟机)->os->会调用的驱动->把数据写入文件
*/
public class Demo02OutputStrean {
public static void main(String[] args) throws IOException {
//创建一个FileOutputStream对象,构造方法传入数据目的地
FileOutputStream fos=new FileOutputStream(“a.txt”);
//调用write方法,将数据写入文件中
// fos.write(97);//
//fos.write(98);
//fos.write(99);
//释放资源
//fos.write(100);//错误写法
//fos.write(49);
//fos.write(48);
//fos.write(48);
byte[] bytes= {-65,66,-67,68};
fos.write(bytes);//会被当成中文来解释
fos.close();
}
}