今天发现一个Java的关于java.io.File在处理com1到com9为文件名的Bug.
2006-03-23 09:55
741 查看
大家可以试下如下代码:
package test.java.io.file;
import java.io.File;
public class TestJavaIOFile {
public static void main(String[] args) {
String fPath = "c:/anydir/com1.ext";
File fNotExist = new File(fPath);
System.out.println("exists()=" + fNotExist.exists());
System.out.println("canRead()=" + fNotExist.canRead());
System.out.println("canWrite()=" + fNotExist.canWrite());
System.out.println("length()=" + fNotExist.length());
}
}
经测试发现,只要是"c:/anydir"是一个存在的目录,对于com1.ext 到com9.ext的任何一个文件,也就是说只要是文件的名称为com1到com9,不管文件的后辍是什么样的,例如com1.xxxx,与com9.txt或com8.??????, 尽管对应的文件实际上不存在,上面的输出将会是:
exists()=true
canRead()=true
canWrite()=true
length()=0
也就是说,java.io.File对于名为com1到com9的文件处理上有bug.
大家可以测试一下,我的测试是在Windows XP SP2 + J2SDK1.4.2_09 以及 JDK1.5.0_04下测试。
我的理解是不是因为com1到com9是设备端口号导致。在Linux下不知是否存对应的问题。
package test.java.io.file;
import java.io.File;
public class TestJavaIOFile {
public static void main(String[] args) {
String fPath = "c:/anydir/com1.ext";
File fNotExist = new File(fPath);
System.out.println("exists()=" + fNotExist.exists());
System.out.println("canRead()=" + fNotExist.canRead());
System.out.println("canWrite()=" + fNotExist.canWrite());
System.out.println("length()=" + fNotExist.length());
}
}
经测试发现,只要是"c:/anydir"是一个存在的目录,对于com1.ext 到com9.ext的任何一个文件,也就是说只要是文件的名称为com1到com9,不管文件的后辍是什么样的,例如com1.xxxx,与com9.txt或com8.??????, 尽管对应的文件实际上不存在,上面的输出将会是:
exists()=true
canRead()=true
canWrite()=true
length()=0
也就是说,java.io.File对于名为com1到com9的文件处理上有bug.
大家可以测试一下,我的测试是在Windows XP SP2 + J2SDK1.4.2_09 以及 JDK1.5.0_04下测试。
我的理解是不是因为com1到com9是设备端口号导致。在Linux下不知是否存对应的问题。
相关文章推荐
- java.io.FileNotFoundException 文件名、目录名或卷标语法不正确 的处理
- 发现java.io.File中 list()方法的一个bug
- 一个字母引发的血案 java.io.File中mkdir()和mkdirs()
- android 异常处理--java.io.IOException: 您的主机中的软件中止了一个已建立的连接
- Spark 读取hdfs上的文件 错误:Caused by: java.io.IOException: Filesystem closed的处理
- 今天看StarterKit.Communities中的关于获取路径部分,发现一个问题?难道老外也会不仔细看MSDN,还是?
- 一个关于java数据库驱动包的小发现
- 今天在做一个SSH整合测验时发现了一个异常(According to TLD or attribute directive in tag file)
- 今天发现一个java做的APPLET,超炫!
- (转载) Java IO 之 FileReader 读取文件打印在控制台(处理汉字乱码bug)
- 解决java java.io.FileNotFoundException: http:\localhost:8080 (文件名、目录名或卷)问题
- android 异常处理--java.io.IOException: 您的主机中的软件中止了一个已建立的连接
- java.io.FileNotFoundException: http://www.opensymphony.com/xwork/xwork-valid
- 关于IO流在复制文件时出现java.io.FileNotFoundException: D:\xxx (拒绝访问。) 拒绝访问的问题
- java.io.File写入写出的一个简单实例
- 只使用处理IO的printDigit函数,编写一个过程以输出任意实数可以为负(java数据结构与算法习题1.3)
- Java IO 之 FileReader 读取文件打印在控制台(处理汉字乱码bug)
- 关于Java压缩时中文文件名处理
- java.io.FileNotFoundException关于使用Intellij Idea时系统找不到指定文件的解决方案
- 黑马程序员-----Java基础-----File,Properties和其他IO处理流