前言:File类代表一个特定文件或目录,提供几个方法怼该文件或目录进行操作
方法 | 说明 |
File(String pathname) | 通过路径名创建一个新 File 实例 |
File(File parent, String child) | 根据父目录路径File实例和子目录或文件路径创建一个新 File 实例 |
File(String parent, String child) | 根据父目录路径和子目录或文件路径创建一个新 File 实例 |
File(URI uri) | 通过统一资源标识符创建一个新的 File 实例 |
package wo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FilterInputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import javax.imageio.stream.FileImageInputStream;
public class Tes {
public static void main(String[] args) {
File file = new File("D:\\workspace\\jdbc");
if (file.isFile()) {// 指向一个文件
System.out.println("o");
}
if (file.isDirectory()) {// 指向一个文件夹
System.out.println("a");
}
}
}
结果:a
public class Tes {
public static void main(String[] args) {
File file = new File("D:\\workspace\\jdbc\\db.properties");
File file1 = new File("D:\\workspace\\","jdbc\\db.properties");
File file2 = new File(new File("D:\\workspace\\"),"jdbc\\db.properties");
String path = file.getAbsolutePath();
System.out.println(path);
System.out.println(file2.getName());
}//file1.file2.file 是等效的书写形式,
}
再Java程序里创建文件:
public class Tes {
public static void main(String[] args) {
if(new File("D:\\dd").mkdir()) {
System.out.println("h");
}
}//方法mkdir()只能用于创建一级目录下的文件
}
public class Tes {
public static void main(String[] args) {
if(new File("D:\\dd\\ee\\ff").mkdirs()) {
System.out.println("d");
}
}//mkdirs()方法适用于多级目录下文件的创建,结果输出d,表示创建成功,文件里的确有
}
public class Tes {
public static void main(String[] args) {
File file=new File("D:\\workspace\\jdbc");
if(file.renameTo(new File("D:\\workspace\\dg"))) {
System.out.println("d");
}//可以任意命名文件或文件夹的名字
}
}
public class Tes {
public static void main(String[] args) {
try {
if(new File("D:\\作用.avi").createNewFile()) {
System.out.println("cheng");
}//创建文件,后缀avi表示文件内容是音频,相应的可以后缀txt,doc等
} catch (IOException e) {
e.printStackTrace();
}
}
}
public class Tes {
public static void main(String[] args) {
if (new File("D:\\作用.avi").exists()) {
System.out.println("chen");
} // 用于判断文件是否存在
if (new File("D:\\作用.avi").delete()) {
System.out.println("ench");
} // 用于删除文件,因为此时文件中没有其他文件可删可:
if (new File("D:\\dd").delete()) {
System.out.println("dd");
} // 此时没有输出结果,因为她下面还有子文件,如果是文本,也是可以删的
}
}
public class Tes {
public static void main(String[] args) {
String[] name=new File("D:\\workspace").list();
for(String n:name) {//结果输出对应路径下的文件清单
System.out.println(n);
}
}
}
public class Tes {
public static void main(String[] args) {
File[] name=new File("D:\\workspace").listFiles();
for(File n:name) {//结果输出对应路径下的文件清单
System.out.println(n);//等同于下面一句
System.out.println(n.getPath());
}
}
}
D:\workspace\.idea
D:\workspace\.metadata
D:\workspace\.recommenders
D:\workspace\1、脏读
D:\workspace\2、不可重复读
D:\workspace\3、幻读
D:\workspace\jdbc
D:\workspace\RemoteSystemsTempFiles
D:\workspace\wo
D:\workspace\www
D:\workspace\我
其实 File.separator 的作用相当于 ' \ '在 windows 中 文件文件分隔符 用 ' \ ' 或者 ' / ' 都可以,但是在 Linux 中,是不识别 ' \ ' 的,而 File.separator 是系统默认的文件分隔符号,在 UNIX 系统上,此字段的值为 ' / '在 Microsoft Windows 系统上,它为 ' \ ' 屏蔽了这些系统的区别。所以用 File.separator 保证了在任何系统下不会出错。
File[] name=new File("D:"+File.separator+"workspace"+File.separator+"jdbc");
File[] name=new File("D:\\workspace\\jdbc");//效果等同
public class Tes {
public static void main(String[] args) {
File file=new File("D:"+File.separator+"workspace"+File.separator,"jdbc");
System.out.println(file.getParent());/**返回此File对象的父目录路径名;如果此路径名没有指定父目录,则返回 null*/
System.out.println(file.getName());//返回此对象表示的文件或目录最后一级文件夹名称
file=file.getParentFile();
System.out.println(file);
System.out.println(file.getName());
}
}
结果:
D:\workspace
jdbc
D:\workspace
workspace
延伸:在文件夹路径下全选再输入cmd出来面板,再输入cd空格/空格../回车会出现上翻一级的结果,如果是一个./是同级。
public class Tes {
public static void main(String[] args) {
try {
FileInputStream fileInputStream = new FileInputStream("D:\\workspace\\我\\src\\db.properties");//有水瓶
FileOutputStream fileOutputStream = new FileOutputStream("D:\\workspace\\我\\src\\com\\jd\\util\\3.properties");//对应目录下真的有空瓶
int data = 0;
while ((data = fileInputStream.read()) != -1) {
fileOutputStream.write(data);//往空瓶中注水
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
//\\io流的前沿