原创

Java基础之IO流判断文件夹或文件是否存在及其如何创建?

首先了解一下什么是IO流?

流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出。


首先通过file.exists()方法判断是否存在filePath参数携带值的文件,如果返回“true”不会创建该文件。之后再通过file.isDirectory()方法判断是否存在filePath参数携带值的文件夹,如果返回true表示存在不会创建该文件夹,具体代码如下:

/**
 * 1  文件夹存在
 * 2  存在相同的文件名
 * 3  文件夹不存在,创建成功
 * @param filePath
 * @return
 */
public static int dirExists(String filePath) {
	File file = new File(filePath);
    if (file.exists()) {
        if (file.isDirectory()) {
            return 1;
        } else {
            return 2;
        }
    } else {
        file.mkdir();
        return 3;
    }

注意:test文件与test文件夹相同名称不能同时存在同一目录下,但是test.*文件和test文件夹可以同时存在同一目录下。


通过file.exists()方法判断是否存在filePath参数携带值的文件,如果返回“true”不会创建该文件,具体代码如下:

/**
 * true 文件不存在,创建成功
 * false 文件存在
 * @param filePath
 * @return
 */
public static boolean isFileExists(String filePath){
	File file = new File(filePath);
	if (file.exists()) {
        return false;
    } else {
    	try {
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return true;
    }
}

分析:

1)windows系统下的文件和文件夹都是以节点形式存储的,相同的文件和文件名不能共存在同一目录下,会有命名冲突。

2)文件后缀名是文件名的一部分,此类文件与文件夹名称即使相同也可以同时存在的。

关注下方微信公众号“Java精选”(w_z90110),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

评论

  1. #1

    呦西 (2017/06/04 10:53:26)回复
    我这里读取IO流总是出现问题,看了这个终于知道为什么了。好尴尬阿!

分享:

支付宝

微信