java的文件操作

文件操作

常用的方法:
File file = new File("D:\\TestJavaFile\\file2"); //定义文件的路径,其中有个’‘是转义
file.exists() //判断上面定义的文件是否存在
file.delete(); //如果文件存在就将它删除
file.createNewFile(); //根据上面文件路径来创建一个文件
对于不同的操作系统,使用的分隔符的是不一样的,windows的分隔符是’ \ ‘,而linux的分隔符是’/’,而一帮情况下是在windows上做开发,部署到linux服务器上,为了让程序通用,File类定义了一个常量来表示分隔符,所以就不用关注是什么操作系统了,这个常量是 separator
所以对于①的写法通常写为:

File file = new File("D:"+File.separator+"TestJavaFile"+File.separator+"file2.txt");

如果父路径不存在的时候是不能够创建文件的,必须先创建父目录,下面有几个常用的方法:
file.getParentFile().exists(); //判断父目录是否存在
file.mkdirs(); //能创建多级父目录
file.mkdir(); //只能创建单级父目录

下面给出一个创建文件的程序:

import java.io.File;
import java.io.IOException;

public class FileBase {
    public static void main(String args[]) throws IOException {
        File file = new File("D:"+File.separator+"TestJavaFile"+File.separator+"file2.txt");
        if(!file.getParentFile().exists()){
            file.mkdirs();
        }
        if(file.exists()) {
            file.delete();                    //如果文件存在就将它删除
        }
        else {
            file.createNewFile();             //根据上面文件路径来创建一个文件
        }
    }
}

File类其他重要的方法:
isFile() //判断是不是文件
isDirectory() //判断是不是文件夹
canRead() //判断是否可读
canWrite() //判断是否可写
length() //返回文件长度,但是是以字节表示的,可以用Math.round()方法转化为保留一定小数位的以M或其他单位的形式。
lastModified() //返回上次修改文件的时间戳,可使用SimpleDateFormat进行转化
renameTo(File file) //这个方法需要传入的参数是一个File类型的对象。

这里也给出这些方法的使用例子:

import java.io.File;
import java.io.IOException;
import java.sql.Time;
import java.text.SimpleDateFormat;

public class FileBase {
    public static void main(String args[]) throws IOException {
        File file = new File("D:"+File.separator+"TestJavaFile");
        //转化为将文件大小表示为kb
        System.out.println(round(file.length()/1024,6));
        //显示文件最后修改的时间
        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Time(file.lastModified())));
        //显示目录的所有子目录(文件)
        if (file.isDirectory()){
            File subFile[]=file.listFiles();
            for (int i=0;i<subFile.length;i++){
                System.out.println(subFile[i].getName());

            }
        }
    }
    public static double round(double num,int scale){                        //该方法返回num四舍五入保留scale位小数
        return Math.round(Math.pow(10,scale)*num)/Math.pow(10,scale);
    }
}

最后给一个笔试可能会出现的问题:给定一个目录,重命名这个目录的全部文件,如修改后以.txt为以后缀。需要注意的是有些文件可能原本没有‘.’,有些可能有多个’.’。给出程序如下:

import java.io.File;

public class AllFileReName {
    static File file=new File("D:"+File.separator+"TestJavaFile");

    public static void ReName(File file){
            if(file.isDirectory()){
                File SubFiles[]=file.listFiles();
                for(int i=0;i<SubFiles.length;i++) {
                    ReName(SubFiles[i]);
                }
            }
            else {                              //不是目录,则修改文件名
                String newName=null;
                if(!file.getName().contains(".")){
                    newName=file.getName()+".txt";
                }
                //如果包含‘.’,那么将最后一个点后面的内容改为txt
                else{
                    int index=file.getName().indexOf('.');
                    newName=file.getName().substring(0,index)+".txt";
                }
                File newFile=new File(file.getParentFile(),newName);
                file.renameTo(newFile);
            }
        }
    public static void main(String args[]){
        ReName(file);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值