首先了解一下什么是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)文件后缀名是文件名的一部分,此类文件与文件夹名称即使相同也可以同时存在的。
呦西 (2017/06/04 10:53:26)回复
我这里读取IO流总是出现问题,看了这个终于知道为什么了。好尴尬阿!