码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-10-07 07:38:23      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

分类

  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流(2016年10月07日01:08:06创建)

标签:

原文地址:http://www.cnblogs.com/maxtree/p/6IO-liu-2016nian10yue07ri010806chuang-jian.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!