美文网首页
Java IO 深入理解

Java IO 深入理解

作者: 疯狂的冰块 | 来源:发表于2017-11-04 23:32 被阅读192次

    1、概述

    Java 的IO”家族“看起来十分吓人。不仅多而且还有io与nio之分。没用用过的很容易就踩坑。

    本文主要从用法上为主,适当源码分析,来更好的掌握Java IO。

    节点流和处理流:

    • 节点流:直接与数据源相连,读入或读出。
    • 处理流:与节点流一块使用,在节点流的基础上,再套一层,套在节点流上的就是处理流。本质利用了装饰模式,封装了节点流,利用缓冲技术,使节点流读取速度更快,更利于使用。

    为什么要有处理流?直接使用节点流,读写不方便,为了更快的读写文件,才有了处理流。

    先按照节点流我们 先大致进行一下归类。

    按照节点流、处理流进行归类

    按照用途进行归类:

    image.png

    2 、浅析

    下面逐个对个各类进行击破。

    如果我们要了解Java IO还必须了解的一个类File

    2.1 File 类

    首先File这个类具有歧义性。File本身是文件的意思,但是File类也可以表示目录。

    我们先进行简单的File类示范:

    创建一个网络流文件。
    import org.apache.commons.io.FileUtils;
    import org.junit.Test;
    
    import java.io.File;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class FileDemoTest {
    
        /**
         *  将百度首页网络流保存为HTML文件
         */
        @Test
        public void testURI() {
            URL url = null;
            try {
                url = new URL("http://www.baidu.com");
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
            File file = new File("F:\\test\\test.html");
            try {
                FileUtils.copyURLToFile(url, file);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    3、实现原理,源码分析

    4、第三方IO工具

    Guava :
    Apache common-io :

    5、优雅使用IO

    6、总结

    示例源码:

    参考文章
    【1】Java IO,硬骨头也能变软

    相关文章

      网友评论

          本文标题:Java IO 深入理解

          本文链接:https://www.haomeiwen.com/subject/bdmxmxtx.html