File类的学习

                                JAVA基础学之File
                                                    
            经过这一系列的学习,我么终于学习到了IO流了,这是一个重点,也是一个难点。
            
    首先来简单介绍一个IO中的File类吧
    
    File:为了方便对文件进行操作,java提供了File类
             该类既可以封装目录也可以封装文件。
            
            
        那么我么首先来了解一下File类中的构造方法把
        
                File(File parent, String child)     parent表示目录,child表示目录或文件
                 
                File(String pathname)     指定文件路径创建一个File实例
                
                File(String parent, String child) parent字符串用于表示目录,child字符串用于表示目录或文件
 
 
 好了现在我么来写写这些构造方法把。。。
 
 
public class FileTest
{
    public static void main(String[] args)
    {
        
        
        
        
        
        /**
         *   奇怪了,我么不是说这个是创建文件的类吗?可是怎么在本地没看到啊
         *   其实,我么只是创建一个对象,上面文件都还没加入呢!
         *   何谈出现文本。好了下面就学习添加吧
         */
        
        
        
        
        //第一中构造方法
        File file = new File("D:\\1.txt");
        
    
        //第二种构造方法
        File file2 = new File(file, "2.txt");
        
        //第三种方法
        File file3 = new File("D:\\", "3.txt");
    }
}


/*
 * 创建文件:boolean createNewFile():创建文件,如果文件不存在,就返回true,否则,返回false。
 * 创建目录:boolean mkdir():创建目录,如果目录不存在,就返回true,否则,返回false。
 *                      boolean mkdirs():创建多级目录,父亲不存在,也可以自动创建。 如果目录不存在,就返回true,否则,返回false。
 *
 * 相对路径:不以盘符开始的路径
 * 绝对路径:以盘符开始的路径
 *
 */
 
 
/**
 *   JAVA基础学之File
 *   
 * 掌握的方法:
 *           boolean createNewFile():当不存在有此路径指定名称的文件时创建一个新的空文件检查文件是否存在,若不存在则创建该文件
 *             boolean mkdir():    创建目录。
 *             boolean mkdirs():    创建此路径名指定的目录,包括不存在的父目录 ,注意,此操作失败时也可能已经成功地创建了一部分必需的父目录
 */


package cn.LianXi;

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

public class FileTest2
{
    public static void main(String[] args)
    {
    
            /**
             *        小知识:
             *              相对路径:不以盘符开始的路径
             *             绝对路径:以盘符开始的路径
             *
             *    我在这里使用的都是相对路径,那么我就写一个绝对路径的吧
             *    写绝对路径的时候需要查看就去指定的路径查看创建的文件
             *  好了,我的本地磁盘上出现了文件了,不知道你的有没有
             *  刚快试试吧
             */
        
            
        
        
            File file4 = new File("F:\\test.txt");
            try
            {
                System.out.println(file4.createNewFile());
            } catch (IOException e1)
            {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        
        
        
            File file = new File("1.txt");
            
            try
            {
                //添加文件的时候会抛出一个异常,从编译器的左边可查看到1.txt文本
                System.out.println("创建空文件成功true/不成功false:"+file.createNewFile());
            } catch (IOException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            //好了,既然可以创建文本了,那么我么就来创建目录(文件夹)吧
            
            File file2 = new File("2");
            System.out.println("创建空文件夹成功true/不成功false:"+file2.mkdir());
            
            
            
            //好了,既然可以创建一个文件夹了,那么可以有多个文件夹融合
            File file3 = new File("aaa\\2\\1.txt");
            
            //可以添加多个文件夹进入
            System.out.println("多层文件夹创建是否成功:"+file3.mkdirs());
    }
}


        好了上面就是功能的书写,大家可以尝试,代码都是IDE里面编译过了的,没错误的哦。
        
        
        接下来,在看一些其他的功能:
        
        boolean delete()删除文件或目录。如果为一个目录,该目录必须为空才能删除。
        
        
        
        
/**
 *         JAVA基础简单学
 *     需要掌握的方法:
 *                 delete()删除文件或目录。如果为一个目录,该目录必须为空才能删除。
 */

package cn.LianXi;

import java.io.File;

public class FileTest3
{
    public static void main(String[] args)
    {
        File file = new File("sss\\ccc");
        
        System.out.println(file.mkdirs());
        
        
        
        //删除多个文件必须借助另外一个文件来,就好比删除此文件夹,必须返回到上一层一样
        File file2 = new File("sss");
        
        file.delete();
        file2.delete();
        
        
    }
}


    上面的方法不是什么重点,现在也还没有说到重点上呢。
    
    
    
    boolean renameTo(File dest)    重命名此文件。
        

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

public class FileTest4
{
    public static void main(String[] args) throws IOException
    {
            File file = new File("xxx.txt");
            
            file.createNewFile();
            
            File file2 = new File("Hacker");
            
            //此方法是将file文件的名字换成file2的名字
            System.out.println(file.renameTo(file2));
            
            file2.delete();
            file.delete();
    }
}        
        
        
        
        
    好了,学习的方法现在还不多呢,再看看吧,枯燥苦逼的程序,谁让俺么是菜鸟呢
    像昨天黑我电脑的病毒哥多牛啊。。。
    
    
    
    

  exists():    测试文件或目录是否存在。
  isFile():测试文件是否是一个标准文件。如果是文件,并满足标准,那么该文件是文件。
  isDirectory():测试路径名的文件是否是一个目录。
  isAbsolute():路径名是否为绝对路径名,如果路径名的前缀是后跟 "\\" 的盘符,那么该路径名是绝对路径名
  canRead():应用程序是否可以读取的文件。
  canWrite():当文件实际包含路径名表示的文件,允许应用程序对该文件进行写入
  isHidden():路径名指定的文件是否是一个隐藏文件。
 
    
    
    
    
    代码如下:
    
import java.io.File;
import java.io.IOException;

public class FileTest5
{
    public static void main(String[] args) throws IOException
    {
        
        File file = new File("F:\\test");
        
        //添加文件
        System.out.println(file.mkdir());
        
        //判断文件目录是否存在
        System.out.println("exists:"+file.exists());//true
        
        //判断是否是一个文件
        System.out.println("isFile:"+file.isFile());//false
        
        //判断路径下的文件是否是一个文件夹
        System.out.println("isDirectory:"+file.isDirectory());//true
        
        
        //判断该文件是否是绝对路径
        System.out.println("isAbsolute:"+file.isAbsolute());//true
        
        //判断文件是否可以读取
        System.out.println("canRead:"+file.canRead());//true
    
        //判断文件是否可以写入
        System.out.println("canWrite:"+file.canWrite());//true
        
        
        //判断文件是否是一个隐藏的文件
        System.out.println("isHidden:"+file.isHidden());//false
    
    }
}
    
    
    
    
    好了,我也不知道下面写什么了,文采我没有,看来我只能在写功能,来实现方法了
    吐槽一下:MB的啥时候成为大牛啊!
    
    
    
    好了,接着看把。
    
    

  String getAbsolutePath():    返回此抽象路径名的绝对路径名字符串
  String getPath():转换为一个路径名字符串
  String getName():返回路径名表示的文件或目录的名称
  long length():返回文件的长度。
  long lastModified():返回文件最后一次被修改的时间。
 
代码体现:  
                    import java.io.File;
                    import java.io.IOException;
                    import java.text.SimpleDateFormat;
                    import java.util.Date;
                    
                    import javax.xml.crypto.Data;
                    
                    public class FileTest6
                    {
                        public static void main(String[] args) throws IOException
                        {
                            File file = new File("3.txt");
                            file.createNewFile();
                            
                        
                            //获取绝对路径
                            String str = file.getAbsolutePath();
                            System.out.println("str:  "+str);
                        
                            //获取相对路径
                            
                            System.out.println("s:  "+file.getPath());
                            
                            //该方法返回路径名表示的文件或目录的名称
                            System.out.println("name:"+file.getName());
                            
                            //该方法返回文件的长度。
                            System.out.println("length:"+file.length());
                            
                            //返回文件最后一次被修改的时间。
                            System.out.println("time:"+file.lastModified());
                            
                            //记得以前学过将毫秒转成时间
                            long time = file.lastModified();
                            Date d = new Date(time);
                            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                            String s = sdf.format(d);
                            System.out.println(s);
                            
                        }
                    }
 
 
 
     好了上面学的也不是很多的,也快到结束的时刻了,只是说今天的学习。。不要以为IO就这么点
     要是这么点,那就爽歪歪了~!。
     
     
     
  File类的重要获取功能:
  public static File[] listRoots():列出系统跟目录。
  public String[] list():    获取指定目录下的目录或者文件的名称数组。
  public File[] listFiles():获取指定目录下的目录或者文件的File数组。
 
 
 代码体现:
                    import java.io.File;
                    import java.io.IOException;
                    
                    public class FileTest7
                    {
                        public static void main(String[] args) throws IOException
                        {
                                File file = new File("D:\\");
                                
                                File file2[] = file.listRoots();
                                
                                for(File f : file2)
                                {
                                    System.out.println(f);
                                }
                                
                                System.out.println("****************");
                                
                                String str[] = file.list();
                                
                                for(String s : str)
                                {
                                    System.out.println(s);
                                }
                                
                                System.out.println("****************");
                                
                                File file3[] = file.listFiles();
                                
                                for(File f : file3)
                                {
                                    if(f.isFile())
                                    {
                                        System.out.println(f);
                                    }
                                }
                        }
                    }
 
 
 
 好了上面是一些常用的IO用法,希望大家能掌握多少就掌握多少,关键会看API就行了
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值