File I/O(1)

当程序位于内存中并且属于特定的类型时,程序才能够操作他们,然而大多数数据并不存在内存中,而是以文件形式存放在外部的磁盘中。(文件是指相关记录或放在一起的数据的集合)java.io包提供了一些接口和类对文件进行基本的操作,包括对文件和目录属性的操作,对文件读写的操作等。

File对象:

File对象既可以表示文件也可以表示目录,一个File对象可以代表一个文件或者目录,利用file可以对文件或目录进行基本操作。

分割符:
windows系统中,文件路径名的分隔符可以使用正斜杠“/”或者反斜杠“\”(第一个反斜杠代表转义)
例如:C:/text.txt 等价于C:\text.txt

绝对路径&相对路径:

绝对路径:是从盘符开始的路径,形如C:\windows\system32\cmd.exe

相对路径:是从当前路径开始的路径,假如当前路径为C:\windows要描述上述路径,只需输入system32\cmd.exe。(实际上,严格的相对路径写法应为.\system32\cmd.exe)其中,.表示当前路径,在通道情况下可以省略,只有在特殊的情况下不能省略。
假如当前路径为c:\program files要调用上述命令,则需要输入..\windows\system32\cmd.exe其中,..为父目录。

案例:
1.对文件夹进行增加,查询,修改,删除。

package test;

import java.io.File;
import java.text.SimpleDateFormat;

public class Main {  

    public static void main(String[] args) {  
     File file=new File("D:/java1");
     Main m=new Main();
     m.createfile(file);
     m.rename(file);
     m.showfile(file);
     //m.delete(file);
    } 
    public void showfile(File file){
        if(file.exists()){
            if(file.isFile()){//判断是否是文件
                System.out.println("是文件");
                System.out.println("名称:"+file.getName());
                System.out.println("相对路径:"+file.getPath());
                System.out.println("绝对路径:"+file.getAbsolutePath());
                System.out.println("文件大小:"+file.length()+"字节");
            }
            if(file.isDirectory()){//判断是否是文件夹
                System.out.println("是目录");
                SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:MM:ss");
                System.out.println("最后修改时间:"+sdf.format(file.lastModified()));
            }
        }else{
            System.out.println("文件不存在");
        }
    }
    public void createfile(File file){
        if(!file.exists()){
            //file.mkdir();//创建文件夹,主要指子文件夹,如果父文件夹不存在无法创建
            file.mkdirs();//创建文件夹,如果父文件夹不存在会帮你创建,并创建子文件夹(推荐使用)
            System.out.println("创建文件夹");
        }
    }
    public void delete(File file){
        if(file.exists()){
            file.delete();//删除文件
            System.out.println("文件已删除");
        }
    }
    public void rename(File file){
        if(file.exists()){
            File file1=new File("D:\\java1");
            file.renameTo(file1);//重命名为file1路径
        }
    }
}  

2.对文件进行增加,查询,修改,删除

package test;

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

public class Main {  

    public static void main(String[] args) {  
     File file=new File("D:/java.txt");
     Main m=new Main();
     m.createfile(file);
     m.rename(file);
   //注意,如果重命名后原来的文件路径就查询不到了,所以显示文件不存在,后续也无法删除
     m.showfile(file);
     m.delete(file);
    } 
    public void showfile(File file){
        if(file.exists()){
            if(file.isFile()){//判断是否是文件
                System.out.println("是文件");
                System.out.println("名称:"+file.getName());
                System.out.println("相对路径:"+file.getPath());
                System.out.println("绝对路径:"+file.getAbsolutePath());
                System.out.println("文件大小:"+file.length()+"字节");
                SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:MM:ss");
                System.out.println("最后修改时间:"+sdf.format(file.lastModified()));
            }
            if(file.isDirectory()){//判断是否是文件夹
                System.out.println("是目录");      
            }
        }else{
            System.out.println("文件不存在");
        }
    }
    public void createfile(File file){
        if(!file.exists()){
            try {
                file.createNewFile();//创建指定名称的空文件,不是文件夹
                System.out.println("创建文件");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    public void delete(File file){
        if(file.exists()){
            file.delete();//删除文件
            System.out.println("文件已删除");
        }
    }
    public void rename(File file){
        if(file.exists()){
            File file1=new File("D:/java1.txt");
            file.renameTo(file1);//重命名为file1路径
            System.out.println("文件重命名");
        }
    }
}  

3.获取指定目录下所有文件和文件夹名称
(list()和listFiles()两种用法,对应String[]和File[]两种返回值)

public class Test {
    //list()方法是返回某个目录下的所有文件和目录的文件名,返回的是String数组
    //listFiles()方法是返回某个目录下所有文件和目录的绝对路径,返回的是File数组
    public static void main(String[] args) throws ParseException {
        File file=new File("D:\\");
        File files[]=file.listFiles();//返回某个目录下所有文件和目录的绝对路径,返回的是File数组
        for(File li:files){
            if(li.isFile()){//可以继续进行判断筛选
                System.out.println(li);
            }
        }
        String s[]=file.list();//返回某个目录下的所有文件和目录的文件名,返回的是String数组
        for(String li:s){
            System.out.println(li);//无法继续进行判断筛选
        }
 } 
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值