6.IO流(10月07日01:08:06创建)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6.IO流(10月07日01:08:06创建)相关的知识,希望对你有一定的参考价值。

分类

  1. 流向:输入流与输出流
  2. 数据:
    1. 字节流
    2. 字符流
  3. 功能:
    1. 节点流:包裹源头
    2. 处理流:增强功能,提高性能

输入流

大致方法

关于输入流的问题大致分四步:

  1. 设立代理
  2. 建立管道(通用性)
  3. 数据装箱(效能)
  4. 结尾手工

以下是个人理解
处理IO流的软件相当一个搬运公司,真实文件好比是一间需要搬运的房子(包括房子里的一切).

1.设立代理:
File类建立的对象貌似拥有文件的身份但却不是文件,因为没有内容,就像是一个影子.除了内容,它几乎可以以假乱真.验证,读取大小,设立目录,删除,甚至可以做到创建文件.现实世界中,我能最快想到的符合File身份的一个词,就是代理.
所以,读取文件之前,我们需要给文件在程序中找到一个代理:
文件代理人f先生: File f = new File("房屋地址");
f先生只负责代理,不负责搬运

代码:

// 建立连接
    File f = new File("/Users/######/Documents/test.txt");//代理人 f先生
    if (!f.exists()) {//创建文件
        System.out.println("文件不存在,正在创建");
        try {
            f.createNewFile();//只是为了验证代理f先生的能力
            System.out.println();
            System.out.println("文件创建成功");
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("文件创建失败");
        }
    }else {
        System.out.println("文件已找到");
    }

2.建立管道:
Inputstream类产生的对象就是搬运队,这个搬运队里根据业务不同有众多分枝
Inputstream
|---AudioInputStream
|---ByteArrayInputStream
|---FileInputStream-->文件运输队
|---FilterInputStream
|---InputStream
|---ObjectInputStream
|---PipedInputStream
|---SequenceInputStream
|---StringBufferInputStream
因为要搬运的是文件,我们需要一个负责搬运的b先生,b先生虽然是文件运输队的b = new FileInputStream(f);,但是在此之前我们创建b先生的时候用的却是InputStream b = null;将b先生声明称一个InputStream抽象类.这里使用的是多态的性质.为了代码的通用性.即我们只需要知道b先生是个搬运工,至于哪个方面的,搬运公司(编译器)决定.

代码:

// 设立管道
        InputStream b = null;//管道
        try {
            b = new FileInputStream(f);
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
            System.out.println("文件不存在");
        }

3.数据装箱

未完...睡觉

以上是关于6.IO流(10月07日01:08:06创建)的主要内容,如果未能解决你的问题,请参考以下文章

79solidity语言学习——2020年07月22日12:49:06

2019-06-10

分享一个学习cesiumjs的中文社区

Python 调整日期格式

学习笔记导航

学习笔记(11月06日) --类