Java Io 流

在这里插入图片描述

前言

这篇文章主要介绍流的概念和作用,Io流的体系及分类,流的使用等知识点。

一、流的概念和作用

1.1 流的概念
Java中将输入输出抽象称为流,就好像水管,将两个容器连接起来。流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流.

1.2 流的作用
为数据源和目的地建立一个输送通道。

二、Io流的体系及分类

在这里插入图片描述
1、File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。
2、InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的共同特征。
3、OutputStream(二进制格式操作):抽象类。基于字节的输出操作。是所有输出流的父类。定义了所有输出流都具有的共同特征。
4、Reader(文件格式操作):抽象类,基于字符的输入操作。
5、Writer(文件格式操作):抽象类,基于字符的输出操作。
6、RandomAccessFile(随机文件操作):一个独立的类,直接继承至Object.它的功能丰富,可以从文件的任意位置进行存取(输入输出)操作。

字符流和字节流

1、字节流:数据流中最小的数据单元是字节
2、字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。
输入流和输出流
1、输入流:程序从输入流读取数据源。数据源包括外界(键盘、文件、网络…),即是将数据源读入到程序的通信通道(文件—>程序)
2、输出流:程序向输出流写入数据。将程序中的数据输出到外界(显示器、打印机、文件、网络…)的通信通道(程序—>文件)。

三、流的使用

1.1、File类

基本方法的使用

public static void FiletestDemo() {
        System.out.println(File.separator);  //名称分隔符 \(windows)  /(linux 等)
        System.out.println(File.pathSeparator);  //  路径分隔符  ;
 
        //相对路径构建的两种方式
        System.out.println("相对路径!!!!!!!!");
        String path = "E:\\BaiduNetdiskDownload";
        String name = "a.txt";
        //第一种方式:
        File file = new File(path, name);
        //第二种方式
        File file1 = new File(new File(path), name);
 
        //绝对路径的构建方式
        File file2 = new File("E:\\BaiduNetdiskDownload\\a.txt");
    }

遍历文件

/**
 * 递归遍历文件
 */
public static void printName(File src) {
    if (null == src || !src.exists()) {
        return;
    }
    System.out.println(src.getAbsolutePath());
    if (src.isDirectory()) { //文件夹
        for (File sub : src.listFiles()) {
            printName(sub);
        }
 
    }
}

1.2、字节流 (可以处理一切文本,视频,音频等)
输入流:InputStream FileInputStream ByteInputStream

输出流:OutputStream FileOutputStream ByteOutputStream

/**
 * 字节输入流
 */
public class FileStreamDemo {
 
    public static void main(String[] args) throws IOException {
        FileUtil.copyDir(new File("D:\\a"), new File("D:/d"));
    }
 
    /**
     * 读取文件
     */
    public static void readFile(File file) throws IOException {
        InputStream is = new FileInputStream(file);
        byte[] bytes = new byte[1024];
        int len = 0;
        StringBuffer sb = new StringBuffer();
        while (-1 != (len = is.read(bytes))) {
            String str = new String(bytes, 0, len);
            sb.append(str);
        }
        System.out.println(sb.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值