之前已经实现了文件创建操作,但是这个时候是直接创建在了根路径下,下面来创建包含有子目录的文件内容。
File file=new File("e:"+File.separator+"demo"+File.separator+"test.txt");
直接使用以上代码是错的,因为有e盘,却没有demo目录存在,所以系统认为此时的路径不能使用,所以会出现创建错误,所以现在要想办法判断创建的父路径是否存在。
找到父路径:public File getParentFile();
创建目录:public boolean mkdir()//创建一级目录
public boolean mkdirs()//创建多级目录(包括一级) 日常使用的也是这个
范例:创建子目录文件
public static void main(String[] args) throws Exception{
File file=new File("e:"+File.separator+"demo"+File.separator+"test.txt");
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();//创建多级目录
}
if(file.exists()){//如果文件存在,则删除文件
file.delete();
return;
}//否则创建文件
System.out.println(file.createNewFile());
}
的确出现了demo目录以及txt文件
在File类里面还提供有一系列的取得文件信息内容的操作功能:
取得文件大小:public long length(),按照字节返回
public static void main(String[] args) throws Exception{
File file=new File("e:"+File.separator+"11.jpg");
if(file.exists()){//首先判断文件是否存在
System.out.println("size="+((double)file.length()/1024));
}
}
大小/1024返回KB,并且化为double,因为long为长整型,不包含小数。
四舍五入可以使用BigDecimal进行。
文件路径有时候不一定是文件结尾,还可能是以目录结果:
判断是否是文件:public boolean isFile()
判断是否是目录:public boolean isDictionary()
最近以此修改日期:public long lastModified();
然后将long改为Date型数据
public static void main(String[] args) throws Exception{
File file=new File("e:"+File.separator+"11.jpg");
System.out.println(file.getPath());
if(file.exists()){//首先判断文件是否存在
System.out.println("is File=="+file.isFile());
System.out.println("is Dictionary=="+file.isDirectory());
System.out.println("last"+new SimpleDateFormat("yyyy-MM-dd").format(new Date(file.lastModified())));
System.out.println("size="+((double)file.length()/1024));
}
}
整个取的过程里面都是取的文件相关信息,不包括内容。