File类

目录

一、File

1.基础知识

1.文件(file)

2.路径分类

3.文件划分

4.构造方法

2.常用的方法 ​编辑

1.创建文件:createNewFile()

2.获取文件信息

3.创建目录

4.返回文件信息

5.判断文件信息

 6.文件重命名

7.删除文件/目录

二、InputStream

FileInputStream

1.构造方法

 2.常用的方法

 3.文件读取

三、OutputStream

FileOutputStream

1.构造方法

 2.常用的方法

 3.文件字符流写

一、File

1.基础知识

1.文件(file)

(1)包含数据内容本身和文件的头信息(文件名、修改时间、文件大小等)

(2)文件系统结构:多子树

2.路径分类

  • 绝对路径:从根节点到叶子节点的整个路径(Windows是从各个磁盘开始的)
  • 相对路径:从任意一个节点出发,到目的节点经过的路径(没有带盘符号的路径,默认在根目录下)

3.文件划分

  • 文本类型:本质上也是基于二进制来保存数据,是使用了一种编码格式保存的文本(保存和打开是要使用相同的编码格式,否则就是乱码)
  • 二进制类型:图片、音乐、视频文件等

4.构造方法

2.常用的方法 

1.创建文件:createNewFile()

createNewFile()

当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。

package file;

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

public class 创建 {
    public static void main(String[] args) throws IOException {
        File file = new File("E:/启迪/1/1.txt");
        System.out.println(file.createNewFile());
    }
}

运行前:

 运行后:

2.获取文件信息

getPath()

将此抽象路径名转换为路径名字符串

getName()

返回由此抽象路径名表示的文件或目录的名称。

package file;

import java.io.File;

public class 创建 {
    public static void main(String[] args) {
        File file = new File("E:/启迪/1/1.txt");
        System.out.println(file.getName());
        System.out.println(file.getPath());
    }
}

3.创建目录

mkdirs()

创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。

mkdirs()

创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。

package file;

import java.io.File;

public class 创建 {
    public static void main(String[] args) {
        //创建一级目录
        File f = new File("E:/TMP/1");
        f.mkdir();

        //创建多级目录
        File f2 = new File("E:/TMP/2/3/4");
        f2.mkdirs();
    }
}

4.返回文件信息

lastModified()

返回此抽象路径名表示的文件上次修改的时间。

length()

返回由此抽象路径名表示的文件的长度。

listFiles()

返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。

package file;

import java.io.File;

public class 创建 {
    public static void main(String[] args) {
        File file = new File("E:/启迪/1/2.txt");
        System.out.println(file.lastModified());
        System.out.println(file.length());
        System.out.println(file.listFiles());
    }
}

5.判断文件信息

exists()

测试此抽象路径名表示的文件或目录是否存在。

isDirectory()

测试此抽象路径名表示的文件是否为目录。

isFile()

测试此抽象路径名表示的文件是否为普通文件。

package file;

import java.io.File;

public class 创建 {
    public static void main(String[] args) {
        File file = new File("E:/启迪/1/1.txt");
        System.out.println(file.exists());
        System.out.println(file.isFile());
        System.out.println(file.isDirectory());
    }
}

 6.文件重命名

renameTo(File dest)

重命名由此抽象路径名表示的文件。

package file;

import java.io.File;

public class 创建 {
    public static void main(String[] args) {
        File file = new File("E:/启迪/1/1.txt");
        file.renameTo(new File("E:/启迪/1/1_rename.txt"));
    }
}

运行前:

 运行后:

7.删除文件/目录

package file;

import java.io.File;

public class 创建 {
    public static void main(String[] args) {
        File file = new File("E:/启迪/1/1_rename.txt");
        System.out.println(file.delete());
    }
}

二、InputStream

InputStream 只是一个抽象类,要使用还需要具体的实现类。关于 InputStream 的实现类有很多,基本可以认为不同的输入设备都可以对应一个 InputStream 类,我们现在只关心从文件中读取,所以使用 FileInputStream

FileInputStream

1.构造方法

 2.常用的方法

read()

从该输入流读取一个字节的数据。

read(byte[] b)

从该输入流读取最多 b.length个字节的数据为字节数组。

 3.文件读取

package file;

import java.io.FileInputStream;
import java.io.IOException;

public class input {
    public static void main(String[] args) throws IOException {
        FileInputStream fileInputStream = new FileInputStream("E:/启迪/1/1.txt");
        byte[] bytes = new byte[fileInputStream.available()];
        int b;

        for(int i = 0; (b = fileInputStream.read()) != -1; i++){
            bytes[i] = (byte) b;
        }
        System.out.println(new String(bytes, "GBK"));
    }
}

三、OutputStream

OutputStream 同样只是一个抽象类,要使用还需要具体的实现类。我们现在还是只关心写入文件中,所以使用 FileOutputStream

FileOutputStream

1.构造方法

 2.常用的方法

read()

从该输入流读取一个字节的数据。

read(byte[] b)

从该输入流读取最多 b.length个字节的数据为字节数组。

 3.文件字符流写

package file;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

public class input {
    public static void main(String[] args) throws IOException {
        FileOutputStream fileOutputStream = new FileOutputStream("E:/启迪/1/1.txt");
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "GBK");
        PrintWriter printWriter = new PrintWriter(outputStreamWriter);

        printWriter.println("哈哈");
        printWriter.println("学习");
        printWriter.println("我身高1.5");
        printWriter.println("会做烧饼");
        printWriter.println("喝药贼快");
        printWriter.flush();
        printWriter.close();
    }
}

运行后:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值