IO基础加强 day01

IO中的分隔符应该用 "/"来表示   而不是"\" 因为在linux的盘符中无法识别"\""/"可以兼容linux和windows

如  :  d:/abc/123.txt      而不是 d:\abc\123.txt

基本方法

                File f1 = new File("c:/abc","123.txt");
//获取文件的绝对路径
String absolutePath = f1.getAbsolutePath();//c:\abc\123.txt
File absoluteFile = f1.getAbsoluteFile();//c:\abc\123.txt
//file和String互相转换
File f2 = new File(absolutePath);
String path1 = f2.toString();
//获取文件路径
String path = f2.getPath();//c:\abc\123.txt
//获取文件名
String name = f2.getName();//123.txt
//获取上级文件夹名称
String parent = f2.getParent();//c:\abc
//获取上级文件夹
File parentFile = f2.getParentFile();//c:\abc
//file本身也只是一个路径,跟String是一样的
---------------------------------------------------------------------
//是否可执行   --只要能打开就算可执行的文件
boolean canExecute = f2.canExecute();//true
//是否可读    --可读可写和系统文件权限有关(可以手动设置)
boolean canRead = f2.canRead();//true
//是否可写     --可读可写和系统文件权限有关(可以手动设置)
boolean canWrite = f2.canWrite();//true
//是否为隐藏文件
boolean hidden = f2.isHidden();//false
//最后修改时间(格林威治时间)
long lastModified = f2.lastModified();//1527592541180
//字节长度

long length = f2.length();//6       

                File f1 = new File("c:/abc","123333.txt");
//是否是文件
boolean file = f1.isFile();//true
//新建文件   --判断是否存在,不存在则新建
boolean exists = f1.exists();//false
if(!exists){
boolean createNewFile = f1.createNewFile();
}else{
//存在该文件则重命名
//f1.renameTo(new File("c:/abc/1.txt"));
//删除文件对象
boolean delete = f1.delete();
//java虚拟机退出时删除文件对象
f1.deleteOnExit();
}
//创建临时文件  -- prefix(String)前缀    文件名  --suffix(String)后缀   文件类型  
//--directory(File)存放到哪个文件夹  默认为windows/Temp文件夹

File.createTempFile("xxx",".textsd",new File("c:/abc"));//C:\abc\xxx7183939415209379196.textsd 

-----------------------------------------------------------------------------------

                File f1 = new File("c:/abc","123333.txt");
//是否为目录
boolean directory = f1.isDirectory();//false  非文件夹
//目录是否存在
boolean exists = f1.exists();//true 存在文件..但是不存在文件夹
File f2 = new File("c:/abc/dis/12");
//创建目录(单层目录)  --注意文件和文件夹也不能重名
boolean mkdir = f2.mkdir();
//多层目录创建(此时用mkdir方法无效)
f2 = new File("c:abc/12/123/aaa");
boolean mkdirs = f2.mkdirs();
//获取该目录下的文件的名称(目录和文件)
f2 = new File("c:abc");
String[] list = f2.list();
for(String a : list){
System.out.println(a);
}
//获取该目录下的文件
File[] listFiles = f2.listFiles();
for (File file : listFiles) {
System.out.println(file);
}
//获取系统所有磁盘根目录     C:\  D:\  E:\  F:\  G:\  (只在windows上应用)
File[] listRoots = File.listRoots();
for (File file : listRoots) {
System.out.println(file);

}         



练习  :找出一个目录下的所有子文件    递归



        public static void main(String[] args) throws IOException {
File f1 = new File("c:/Program");
File[] listFiles = f1.listFiles();
getFiles(listFiles);
}


private static void getFiles(File[] f) {
for (File file : f) {
if(file.isDirectory()){
getFiles(file.listFiles());
}else{
System.out.println(file);
}
}
}

猜你喜欢

转载自blog.csdn.net/qq_39205291/article/details/80500675