今天在写java,I/O流时,运行了教材上的一个程序;
正常时可以运行的
import java.io.File;
import java.io.FilenameFilter;
public class GetFileInfo9_13 {
public static void main(String args[]) {
String filename="C:\\\\Program Files\\\\Java\\\\jre6\\\\lib\\\\rt.jar";
String path="C:\\Program Files\\java\\jdk1.6.0_45\\lib";
File file=new File(filename);
if(file.exists()) {
System.out.println("文件"+file.getName()+"信息如下:");
System.out.println("绝对路径"+file.getAbsolutePath());
System.out.println("上级目录"+file.getParent());
System.out.println("是否可读"+file.canRead());
System.out.println("是否可写"+file.canWrite());
System.out.println("是否隐藏"+file.isHidden());
}
else {
System.out.println("文件不存在");
}
File filepath = new File(path);
String[] fileFileList = filepath.list();System.out.println(fileFileList[0]);
String[] fileFilterList=filepath.list(new Filter(".jar"));
System.out.println("没过滤的文件信息如下:");
if(fileFileList!=null) {
for(int i=0;i<fileFileList.length;i++) System.out.println(fileFileList[i]);
}
System.out.println("后缀为jar的文件信息如下:");
if(fileFilterList!=null) {
for(int j=0;j<fileFilterList.length;j++) {
System.out.println(fileFilterList[j]);
}
}
}
}
class Filter implements FilenameFilter
{
String s;
Filter(String s){
this.s=s;
}
public boolean accept(File dir,String name) {
if(name.endsWith(s))
return true;
else
return false;
}
}
但是我的就是不显示,然后我将path,变量路径给换了,变成"C:\Java\lib"然后就能跑了,
换成"C:\\Program Files\\java\\jdk1.6.0_45\\lib",也能运行了。
原因及解决:应该就是Program Files的问题了,我的电脑只有c盘,就跟初始的java文件不能直接在C盘目录下存一样,Program Files有权限问题应该是(windows11的管理员权限问题),之前怎么运行都不出来,解决方法就是,先找一个有别于Program Files的路径,然后运行一遍,之后再改过来,就行了。
总结:本人菜鸡一枚,原因及解决方法可能凑巧,欢迎指正;