原创

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),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

  1. #1

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

分享:

支付宝

微信