java 文件操作类_Java中的文件操作类File

本文详细介绍了Java中的File类,包括其构造方法、字段和实例方法,如创建、删除、读写文件的基本属性等。通过实例展示了如何进行文件操作,如判断文件存在、删除、获取文件属性等,并提供了获取指定目录下文件和文件夹的方法。
摘要由CSDN通过智能技术生成

原标题:Java中的文件操作类File

f1733cc0e9e74f8c26f79de40933e814.png

为了更好的帮助大家便利的学习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系统中使用。

edfa5dd49b55eca6db5f70d0fb66d347.png

字段摘要

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);

}

}

0e88c73817ed5ddec71dbf9699e59f57.png

实例方法

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);

}

}

673d2a9ffb61fb9a763534a2fefa4c5a.png

例如:得到指定目录下的文件以及文件夹

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;

}

}

练习:得到指定目录下的指定类型的文件返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值