IO流(1)--文件流及其原理

本文介绍了Java中的文件流,包括File对象、FileInputStream和FileOutputStream(字节流)以及FileReader和FileWriter(字符流)。文件流用于程序与文件之间的数据传输,File对象用于文件操作。字节流通过FileDescriptor实现文件操作,字符流则通过编码解码器转换字符和字节。文章详细讲解了各个流的工作原理。
摘要由CSDN通过智能技术生成

文件流的基本类有四种:

  • FileInputStream/FileOutputStream
  • FileReader/FileWriter

一、File对象

文件流是一种节点流,它沟通程序与文件之间的数据传输。在Java中,文件被抽象为File。

我们通过File的构造器创建File对象,最常用的是通过文件路径字符串进行创建。

public class Main{
    public static void main(String[] args){
        // 将一个已经存在的,或者不存在的文件或者目录封装成file对象
        File f = new File("/home/ubuntu/test/a.txt");
        File dir = new File("/home/ubuntu/test");
    }
}        

File类提供了很多对于文件或目录的操作。

  1. 获取文件的信息。文件名称,路径,文件大小,修改时间等等。
  2. 文件的创建和删除,目录的创建
  3. 文件设置权限(读,写,执行)
  4. ...

二、FileInputStream/FileOutputStream

FileInputStream和FileOutputStream是作用于文件的字节流。其实例连接了程序内存与文件对象,在构造流对象的时候需要指定文件对象。

// FileInputStream.java
public class FileInputStream extends InputStream{
    // 传入文件名作为参数
    public FileInputStream(String name) throws FileNotFoundException {
        this(name != null ? new File(name) : null);
    }

    // 传入文件作为参数
    public FileInputStream(File file) throws FileNotFoundException {
        String name = (file != null ? file.getPath() : null);
        SecurityManager security = System.getSecurityManager();
        if (security != null) {
            security.checkRead(name);
        }
        if (name == null) {
            // 文件对象为空指针
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值