IO流基础

举报
周小末天天开心 发表于 2022/12/31 17:30:10 2022/12/31
【摘要】 IO流文件什么是文件:文件是保存数据的地方,比如经常使用的word文档,txt文档,excel文件等,它即可以保 存一张图片,也可以保存视频和声音...文件流:文件在程序中是以流的形式来操作的。流:数据在数据源(文件)和程序(内存)之间经历的路径。输入流:数据从数据源(文件)到程序(内存)的路径。输出流:数据从程序(内存)到数据源(文件)的路径。常用的文件操作创建文件对象相关构造器和方法ne...

IO流

文件

什么是文件:文件是保存数据的地方,比如经常使用的word文档,txt文档,excel文件等,它即可以保 存一张图片,也可以保存视频和声音...

文件流:文件在程序中是以流的形式来操作的。

流:数据在数据源(文件)和程序(内存)之间经历的路径。

输入流:数据从数据源(文件)到程序(内存)的路径。

输出流:数据从程序(内存)到数据源(文件)的路径。

常用的文件操作

创建文件对象相关构造器和方法

new File(String pathname) //根据路径创建一个File对象

new File(File parent, String child) //根据父目录文件 + 子路径构建

new File(String parent, String child) //根据父目录 + 子路径构建

案例演示

请在E盘下创建文件news1.txt 、news2.txt 、news3.txt,用三种不同方式创建


import org.junit.jupiter.api.Test;
import java.io.*;
public class FileCreate {
    public static void main(String[] args) {
    }
    
    //方式 1 new File(String pathname)
    @Test
    public void create01() {
        String filePath = "e:\\news1.txt";
        File file = new File(filePath);
        try {
            file.createNewFile();
            System.out.println("文件创建成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    //方式 2 new File(File parent,String child) //根据父目录文件+子路径构建
    //e:\\news2.txt
    @Test
    public void create02() {
        File parentFile = new File("e:\\");
        String fileName = "news2.txt";
        //这里的 file 对象,在 java 程序中,只是一个对象
        //只有执行了 createNewFile 方法,才会真正的,在磁盘创建该文件
        File file = new File(parentFile, fileName);
        try {
            file.createNewFile();
            System.out.println("创建成功~");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    //方式 3 new File(String parent,String child) //根据父目录+子路径构建
    @Test
    public void create03() {
        //String parentPath = "e:\\";
        String parentPath = "e:\\";
        String fileName = "news4.txt";
        File file = new File(parentPath, fileName);
        try {
            file.createNewFile();
            System.out.println("创建成功~");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
//下面四个都是抽象类
//
//InputStream
//OutputStream
//Reader //字符输入流
//Writer //字符输出流
}

获取文件的相关信息

getName、getAbsolutePath、getParent、length、exists、isFile、isDirectory

案例演示

import org.junit.jupiter.api.Test;
import java.io.File;
public class FileInformation {
    public static void main(String[] args) {
    }
    
    //获取文件的信息
    @Test
    public void info() {
        //先创建文件对象
        File file = new File("e:\\news1.txt");
        //调用相应的方法,得到对应信息
        System.out.println("文件名字=" + file.getName());
        //getName、getAbsolutePath、getParent、length、exists、isFile、isDirectory
        System.out.println("文件绝对路径=" + file.getAbsolutePath());
        System.out.println("文件父级目录=" + file.getParent());
        System.out.println("文件大小(字节)=" + file.length());
        System.out.println("文件是否存在=" + file.exists());//T
        System.out.println("是不是一个文件=" + file.isFile());//T
        System.out.println("是不是一个目录=" + file.isDirectory());//F
    }
}

目录的操作和文件删除

mkdir创建一级目录,mkdirs创建多级目录,delete删除空目录或文件

IO流原理及流的分类

Java IO流原理

(1)I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理数据传输,如读写文件,网络通

讯等。

(2)Java程序中,对于数据的输入/输出操作以“流(stream)”的方式进行。

(3)java.io包下提供了各种“流”类和接口,用于获取不同种类的数据,并通过方法输入或输出数据。

(4)输入input:读取外部数据(磁盘,光盘等存储设备的数据)到程序(内存)中。

(5)输出output:将程序(内存)数据输出到磁盘,光盘等存储设备中。

流的分类

(1)按照操作数据单位不同分为:字节流(8 bit)二进制文件,字符流(按字符)文本文件

(2)按数据流的流向不同分为:输入流,输出流

(3)按流的角色的不同分为:节点流,处理流/包装流

输入流的字节流为InputStream,字符流为Reader

输出流的字节流为OutputStream,字符流为Writer

1)Java的IO流共涉及40多个类,实际上非常规则,都是从如上4个抽象基类派生的。

2)由这四个类派生出来的子类名称都是以其父类名作为子类名后缀。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。