Java IO 深入理解

2017-11-04  本文已影响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,硬骨头也能变软

上一篇 下一篇

猜你喜欢

热点阅读