原标题:Java中的文件操作类File
为了更好的帮助大家便利的学习java这门编程语言,和更好的巩固java语言学习中的基础知识,我们特意为大家精心制作了java程序设计精编教程。
本教程精选java核心内容,结合实例,循序渐进的向大家介绍Java语言。以零基础讲解为基础,用实例引导大家学习,深入浅出的向大家介绍java的相关知识和实战技能。
Java入门(34)
上一节课我们通过之前学习的内容,制作了一个简单的学生管理程序。在制作这个简单的管理程序的时候,我们把学生信息保存在了集合中。当我们关闭了这个程序以后,保存在集合中的数据就没有了,因为集合不具有持久化。所以我们要学习输入输出流,帮助我们持久化的保存数据。
输入输出流是对计算机文件进行操作的java类库。【读写文件数据】
1.计算机中的文件是由几部分组成?
1.文件的基本属性。【文件的名称,后缀名,修改日期,类型.......】【java.io.File类】
2.文件中的数据。【输入输出流】
2.对文件的基本属性进行操作
在java中我们通过java.io.File类实现对文件的基本属性进行操作。
3.java.io.File类
定义:
public class File
extends Object
implements Serializable, Comparable
既然是一个类,那么在使用的时候就需要创建对象。
构造方法摘要
File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
例如:
package com.click369.test1;
import java.io.File;
public class TestMain {
public static void main(String[] args) {
//java.io.File类
//构造方法
//File(String pathname) 通过String类型的文件的路径和名称创建一个文件对象
//pathname---需要创建的文件的路径和名称
String pathname="F:20191015testmytest.txt";
String path="F:/20191015/test/mytest.txt";
File file1=new File(pathname);
File file2=new File(path);
//File(String parent, String child) 通过String类型的文件的路径和String类型名称创建一个文件对象
//String parent---需要创建的文件的路径
//String child----需要创建的文件的名称
String parent="F:20191015test";
String child="mytest.txt";
File file3=new File(parent,child);
//File(File parent, String child) 通过File类型的文件的路径和String类型名称创建一个文件对象。
//File parent---需要创建的文件的路径
//String child----需要创建的文件的名称
String stringpath="F:20191015test";
File filepath=new File(stringpath);
String child1="mytest.txt";
File file4=new File(filepath,child1);
//创建出文件对象,并不会得到实际文件。
}
}
上面的实例中指定文件路径的时候
1.路径分割符【】,window系统下的路径分隔符需要转义
2.windows系统的路径分隔符【】与Unix系统的路径分隔符【/】不一样.
我们需要一个文件的路径分隔符,既可以兼容windows系统,也可以在Unix系统中使用。
字段摘要
static StringpathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
static Stringseparator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
例如:
package com.click369.test2;
import java.io.File;
public class TestMain {
public static void main(String[] args) {
//java.io.File类
/*
字段摘要
static String separator
与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
*/
//在不同的计算机操作系统中,路径分割符号是不同的。
//windows系统的路径分隔符【】与Unix系统的路径分隔符【/】不一样.
//如果我们的程序采用了windows系统的路径分隔符【】,
//那么我们的程序能否在Unix系统中正常运行吗?
//不能正常运行,因为Unix系统不会识别windows系统的路径分隔符【】
//结果是你的程序只能在windows系统运行,不能在Unix系统运行。
//我们要想让自己的程序既能在windows系统运行,也可以在Unix系统运行
//这时就需要一个通配的路径分隔符。
//System.out.println("pathSeparator=="+File.pathSeparator);
//System.out.println("separator=="+File.separator);
String path="F:"+File.separator+"20191015"+File.separator+"test"+File.separator+"mytest.txt";
System.out.println(path);
}
}
实例方法
booleancreateNewFile 创建新文件
booleanexists 判断文件或文件夹是否存在
booleandelete 删除文件或文件夹。删除文件夹的时候一定要保证文件夹为空,非空文件夹是无法删除的
booleancanRead 判断文件是否可读。
booleancanWrite 判断文件是否可写。
booleanisHidden 判断文件是否是一个隐藏文件。
boolean isFile 判断该对像是否为一个文件。【文件必须存在】
StringgetAbsolutePath 返回绝对路径名字符串。
StringgetName 返回文件或文件夹的名称。
StringgetParent得到文件的保存目录。
StringgetPath 将此抽象路径名转换为一个路径名字符串。
longlastModified 返回此抽象路径名表示的文件最后一次被修改的时间【毫秒数】。
longlength 返回文件的长度【字节】。1kb=1024字节 1mb=1024kb 1gb=1024mb
booleanmkdirs 创建一个文件夹
booleanisDirectory 判断该对像是否为一个文件夹。【文件夹必须存在】
String[]list返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录的名称。
File[]listFiles返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
例如:
package com.click369.test1;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileTest2 {
public static void main(String[] args)throws Exception {
//判断文件是否存在如果存在就删除,不存在就新建
//创建文件对象
String path="F:"+File.separator+"20190801"+File.separator+"javaSE"+File.separator+"20190916JavaSE(23)";
String filename="testfile.txt";
File file=new File(path,filename);
File file2=new File(path);
/*
//判断文件是否存在
//booleanexists 判断文件或文件夹是否存在
boolean flag=file.exists;
if(flag){
//文件存在就要删除文件
//booleandelete 删除文件或文件夹
file.delete;
}else{
//文件不存在就要新建文件
//booleancreateNewFile 创建新文件
file.createNewFile;
}
*/
//booleancanRead 判断文件是否可读。
System.out.println("canRead=="+file.canRead);
//booleancanWrite 判断文件是否可写。
System.out.println("canWrite=="+file.canWrite);
//booleanisHidden 判断文件是否是一个隐藏文件。
System.out.println("isHidden=="+file.isHidden);
//判断该对像是否为一个文件。
System.out.println("isFile=="+file.isFile);
System.out.println("isFile=="+file2.isFile);
//StringgetAbsolutePath 返回绝对路径名字符串。
System.out.println("绝对路径=="+file.getAbsolutePath);
//StringgetName 返回文件或文件夹的名称。
System.out.println("文件名称=="+file.getName);
//StringgetParent得到文件的保存目录。
System.out.println("文件的保存目录=="+file.getParent);
// StringgetPath 将此抽象路径名转换为一个路径名字符串。
System.out.println("getPath=="+file.getPath);
// longlastModified 返回此抽象路径名表示的文件最后一次被修改的时间【毫秒数】。
long time=file.lastModified;
Date date=new Date(time);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd E HH:mm");
String newtime=sdf.format(date);
System.out.println("最后一次被修改的时间=="+newtime);
//longlength 返回文件的长度。
System.out.println("length=="+file.length);
//创建文件对象
String path1="F:"+File.separator+"20190801"+File.separator+"javaSE"+File.separator+"20190916JavaSE(23)";
File file3=new File(path1,"code");
//booleanexists 判断文件或文件夹是否存在
booleanexists=file3.exists;
if(exists){
//存在就删除
//booleandelete 删除文件或文件夹
file3.delete;
}else{
//不存在就创建
//booleanmkdirs 创建一个文件夹
file3.mkdirs;
}
//booleanisDirectory 判断该对像是否为一个文件夹。【文件夹必须存在】
boolean isd=file3.isDirectory;
System.out.println("isd=="+isd);
}
}
例如:得到指定目录下的文件以及文件夹
package com.click369.test1;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FileTest3 {
public static void main(String[] args)throws Exception {
//得到指定目录下的文件以及文件夹
//String[]list返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录的名称。
//得到F:20190801javaSE20190916JavaSE(23)目录下的文件及文件夹
/*
File file= new File("F:"+File.separator+"20190801"+File.separator+"javaSE"+File.separator+"20190916JavaSE(23)");
String names[]=file.list;
for(String name:names){
System.out.println(name);
}
*/
File file= new File("F:"+File.separator+"20190801"+File.separator+"javaSE"+File.separator+"20190916JavaSE(23)");
//File[]listFiles返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File files[]=file.listFiles;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd E HH:mm");
for(File f:files){
String filename=f.getName;
long time=f.lastModified;
String lasttime=sdf.format(new Date(time));
String filetype="";
String len="";
if(f.isDirectory){
filetype="文件夹";
}
if(f.isFile){
filetype=getFiletype(f);
len=f.length+"字节";
}
StringBuilder builder=new StringBuilder;
builder.append(filename);
builder.append("ttt");
builder.append(lasttime);
builder.append("ttt");
builder.append(filetype);
builder.append("ttt");
builder.append(len);
System.out.println(builder.toString);
}
}
/**
* 得到文件类型
* @param f
* @return
*/
private static String getFiletype(File f) {
String type="";
String houzhui=f.getName.substring(f.getName.lastIndexOf("."));
if(".doc".equals(houzhui)|| ".docx".equals(houzhui)){
type="DOCX文档";
}
if(".CHM".equals(houzhui)|| ".chm".equals(houzhui)){
type="编译的html文件";
}
if(".txt".equals(houzhui)|| ".TXT".equals(houzhui)){
type="文本文档";
}
if(".java".equals(houzhui)|| ".JAVA".equals(houzhui)){
type="JAVA源文件";
}
return type;
}
}
练习:得到指定目录下的指定类型的文件返回搜狐,查看更多
责任编辑: