import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Test5 {
/**
* 取出E:盘下全部的.java文件的文件路径保存在java.txt文件中
*/
public static void main(String[] args) throws IOException {
File f = new File("E:\\"); //这里面换成E:盘下一个子文件夹就没有问题
BufferedWriter bfw = new BufferedWriter(new FileWriter("java.txt"));
javaList(f, bfw);
bfw.close();
}
public static void javaList(File f, BufferedWriter bfw) throws IOException {
if (f.exists()) {
File[] files = f.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
javaList(files[i], bfw);
} else {
if (files[i].getName().endsWith(".java")) {
bfw.write(files[i].getAbsolutePath());
bfw.newLine();
bfw.flush();
}
}
}
} else {
System.out.println(f.getName() + "不存在");
}
}
}异常信息:
Exception in thread "main" java.lang.NullPointerException
at Test5.javaList(Test5.java:18)
at Test5.javaList(Test5.java:20)
at Test5.main(Test5.java:12)
解决方案 »
- 关于java做udp的socket通信的信息传输问题
- 如何实现一次撤消多个字符(undo每次只能撤消一个)
- 问个小问题:java能不能在windows命令行下显示彩色的文字?
- 多媒体中图像,动画的加载问题
- 为何JAVA连接SQL出错,SQL的驱动我也设置了
- 以前没学过JAVA,现在想学,请各位帮帮小弟,我想买书,介绍几本好书来啊。
- 关于值传递的问题,请大家进来看一看。。
- 老问题:如何用java实现ftp断点续传(要原码)急!!
- 菜鸟请教大虾:java中的Applet应用多不多,我可不可不学它,Applet应用jdbc多不多?
- 暂别CSDN,向JAVA版的兄弟告别,也预祝JAVA版越办越好(草中宝)
- 求一个算法,给点思路
- 图的深度遍历问题
if (files != null)
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;public class Test { /**
* 取出E:盘下全部的.java文件的文件路径保存在java.txt文件中
*/
public static void main(String[] args) throws IOException {
File f = new File("E:\\"); // 这里面换成E:盘下一个子文件夹就没有问题
BufferedWriter bfw = new BufferedWriter(new FileWriter("java.txt"));
javaList(f, bfw);
bfw.close();
} public static void javaList(File f, BufferedWriter bfw) throws IOException {
if (f.isFile()) {
if (f.getName().equals(".java")) {
bfw.write(f.getAbsolutePath());
bfw.newLine();
bfw.flush();
}
} else {
File[] files = f.listFiles();
if (files != null) {
System.out.println(files == null);
for (int i = 0; i < files.length; i++) {
javaList(files[i], bfw);
}
}
}
}
}
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Test5 {
/**
* 取出E:盘下全部的.java文件的文件路径保存在java.txt文件中
*/
public static void main(String[] args) throws IOException {
File f = new File("E:\\"); //这里面换成E:盘下一个子文件夹就没有问题
BufferedWriter bfw = new BufferedWriter(new FileWriter("java.txt"));
javaList(f, bfw);
bfw.close();
}
public static void javaList(File f, BufferedWriter bfw) throws IOException {
if (f.exists()) {
File[] files = f.listFiles();
if (files != null && files.length > 0) {
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
javaList(files[i], bfw);
} else {
if (files[i].getName().endsWith(".java")) {
bfw.write(files[i].getAbsolutePath());
bfw.newLine();
bfw.flush();
}
}
}
}
} else {
System.out.println(f.getName() + "不存在");
}
}
}
因为在根目录下有一个特殊的目录,E:\System Volume Information
用下面的程序就明白了.那个目录是取不到listFiles()的import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Test5 {
/**
* 取出E:盘下全部的.java文件的文件路径保存在java.txt文件中
*/
public static void main(String[] args) throws IOException {
File f = new File("E:\\"); //这里面换成E:盘下一个子文件夹就没有问题
BufferedWriter bfw = new BufferedWriter(new FileWriter("java.txt"));
javaList(f, bfw);
bfw.close();
}
public static void javaList(File f, BufferedWriter bfw) throws IOException {
if (f.exists()) {
File[] files = f.listFiles();
if (files != null) {
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
javaList(files[i], bfw);
} else {
if (files[i].getName().endsWith(".java")) {
bfw.write(files[i].getAbsolutePath());
bfw.newLine();
bfw.flush();
}
}
}
} else {
System.out.println("-------------");
System.out.println(f);
System.out.println("--------------");
}
} else {
System.out.println(f.getName() + "不存在");
}
}
}
应该是该磁盘下的隐藏文件造成的!
看一个盘有没有隐藏文件很容易,到目录下按CTRL+A,若有隐藏文件会有提示。
你在命令行模式,用 dir /a能发现它.
具体的解释看这个.
http://baike.baidu.com/view/682081.htm?fr=ala0_1_1