File类的使用;IO流(FileInputStream、FileOutputStream、FileReader、FileWriter)的概述及使用;缓冲流的使用

一、File类:

1、java.io下的File类

  (1)、凡是与输入、输出相关的类、接口等都定义在java.io包下。

  (2)、File是一个类,可以有构造器创建其对象。此对象对应着一个文件(.txt, .avi, .doc, .ppt, .mp3, .jpg)等等。

  (3)、File类对象是与平台无关的。

   (4)File中的对象,仅仅涉及到如何创建、删除、重命名等等;只要涉及文件内容的如:修改、读取等,做不了,需要IO流来完成。

   (5)File类的对象常作为IO流的具体类的构造器的形参。

 

2

  (1)、File类的使用格式:File file=new File(字符串类型的路径);

  (2)、路径:

             绝对路径:包含盘符在内的完整的文件路径

             相对路径:相对于当前文件目录的文件路径

  (3)、File file=new File("d:\\io\\helloworld.txt");      //正常情况下路径为:"d:\io\helloworld.txt";但此处因为是java语句,具有跨平台性,所以应该加双斜线或者是一个方向相反的斜线。

 

 

代码实例:

package com.atguigu.File;



import java.io.File;



import org.junit.Test;



/*

 * java.io下的File类

 * 1、凡是与输入、输出相关的类、接口等都定义在java.io包下。

 * 2、File是一个类,可以有构造器创建其对象。此对象对应着一个文件( .txt, .avi, .doc, .ppt, .mp3, .jpg)或

 * 3、File类对象是与平台无关的。

 * 4、File中的对象,仅仅涉及到如何创建、删除、重命名等等;只要涉及文件内容的如:修改、读取等,做不了,需要IO流来完成。

 * 5、File类的对象常作为IO流的具体类的构造器的形参。

 * */

public class TestFile {

    /*

     * 路径

     * 绝对路径:包含盘符在内的完整的文件路径

     * 相对路径:相对于当前文件目录的文件路径

     * */

    @Test

    public void test1() {

        File file=new File("d:\\io\\helloworld.txt");//正常情况下路径为:"d:\io\helloworld.txt";但此处因为是java语句,具有跨平台性,所以应该加双斜线或者是一个方向相反的斜线。

        File file2=new File("hello.txt");  //同级目录下的路径

    }

}

 

 

二、File类的使用:

 

      File类的方法:

package com.atguigu.File;

import java.io.File;

import java.io.IOException;

import java.util.Date;

import org.junit.Test;

/*

 * java.io下的File类

 * 1、凡是与输入、输出相关的类、接口等都定义在java.io包下。

 * 2、File是一个类,可以有构造器创建其对象。此对象对应着一个文件( .txt, .avi, .doc, .ppt, .mp3, .jpg)或

 * 3、File类对象是与平台无关的。

 * 4、File中的对象,仅仅涉及到如何创建、删除、重命名等等;只要涉及文件内容的如:修改、读取等,做不了,需要IO流来完成。

 * 5、File类的对象常作为IO流的具体类的构造器的形参。

 * */

public class TestFile {

    /*

     * createNewFile

     * delete()

     * mkDir():创建一个文件目录。只有在上层文件目录存在的情况下才能返回true。

     * mkDirs():创建一个文件目录。若上层文件目录不存在,一并创建。

     * list()

     * listFiles()

     *

     * */

    @Test

    public void test3() throws IOException {

        File file1=new File("d:/io/hello.txt");

        System.out.println(file1.delete());

       

        if(!file1.exists()) {  //判断是否存在,不存在则创建

            boolean b=file1.createNewFile();//创建文件中的文档

            System.out.println(b);

        }

       

        File file2=new File("d:\\io2\\io3\\io5");

        if(!file2.exists()) {

            System.out.println(file2.mkdir()); //创建文件目录

        }

       

        File file3=new File("d:\\teach");//将teach中的所有内容遍历出来。

        String[] strs=file3.list();

        for(int i=0;i<strs.length;i++) {

            System.out.println(strs[i]);

        }

       

        File[] files=file3.listFiles();   //只遍历文件名

        for(int i=0;i<files.length;i++) {

            System.out.println(files[i].getName());

        }

    }

    

   

    @Test

    public void test2() {

       

        File file1=new File("d:/io/hello.txt");

        File file2=new File("hello1.txt");

        File file3=new File("d:\\io\\io1");

        File file4=new File("d:\\ios");

       

        System.out.println(file1.exists());

        System.out.println(file1.canWrite());

        System.out.println(file1.canRead());

        System.out.println(file1.isFile());

        System.out.println(file1.isDirectory());

        System.out.println(file1.lastModified());//本来显示的全是毫秒数,加一个new Date()后就可以显示很好看的时间。

        System.out.println(file1.length());

       

    }

   

  

    /*

     * 路径

     * 绝对路径:包含盘符在内的完整的文件路径

     * 相对路径:相对于当前文件目录的文件路径

     * */

    @Test

    public void test1() {

        File file1=new File("d:/io/helloworld.txt");//hu'e'dui'lu'jin'h    //正常情况下路径为:"d:\io\helloworld.txt";但此处因为是java语句,具有跨平台性,所以应该加双斜线或者是一个方向相反的斜线。

        File file2=new File("hello.txt");  //同级目录下的路径

        File file3=new File("d:\\io\\io1");   //文件

       

        File file4=new File("d:\\io2");

       

        System.out.println(file1.getName());  //获取文件的名

        System.out.println(file1.getPath());  //获取文件路径

        System.out.println(file1.getAbsolutePath());  //获取绝对路径

        System.out.println(file1.getAbsoluteFile());  //获取绝对文件名

        System.out.println(file1.getParent()); //父文件路径

        System.out.println("**************************");

        System.out.println(file3.getName());  //获取文件的名

        System.out.println(file3.getPath());  //获取文件路径

        System.out.println(file3.getAbsolutePath());  //获取绝对路径

        System.out.println(file3.getAbsoluteFile());  //获取绝对文件名

        System.out.println(file3.getParent()); //父文件路径

        //renameTo(File newName):返回boolean类型

        //file1.renameTo(file2):file重命名为file2,要求:file1文件一定存在,file2一定不存在。

//      boolean b=file1.renameTo(file2);

//      System.out.println(b);

       

        boolean b1=file4.renameTo(file3);

        System.out.println(b1);

    }

}

 

 

三、IO流的概述:

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值