现在动手写写Java的微程序。光看得懂书的其实是不会写的。
Java输出某文件目录下的所有文件
1. 队列输出某文件目录下的所有文件
import java.io.File;
import java.util.LinkedList;
public class test {
public static void main(String[] args) {
long fileCount = 0;
LinkedList<File> list = new LinkedList<File>();
File file = new File(".");
// if (file == null) System.out.println("该文件不存在");
//计数中除去根目录
if (file.length() == 0)
System.out.println("空文件(夹)");
if (file.isDirectory()) {
for (File tmpFile : file.listFiles()){
list.addFirst(tmpFile);
}
}
// //计数中包括根目录
// list.add(file);
while(!list.isEmpty()) {
++ fileCount;
file = list.removeFirst();
if (file.isDirectory()) {
System.out.println
(file.getAbsolutePath()+" DIR");
for (File tmpFile : file.listFiles()){
list.addFirst(tmpFile);
}
}else {
System.out.println
(file.getAbsolutePath()+" "+file.length());
}
}
System.out.printf("Totle:%d\n",fileCount);
}
}
2. 递归法:
import java.io.File;
public class test2 {
public static void main(String[] args) {
File file = new File(".");
ShowFile(file);
}
public static void ShowFile(File mainFile) {
//先深入再操作(输出),避免加入根目录
if (!mainFile.isDirectory()) {
return;
}
for (File subFile : mainFile.listFiles()) {
if (subFile.isDirectory()) {
System.out.println
(subFile.getAbsolutePath()+" DIR");
ShowFile(subFile);
}else if (subFile.isFile()){
System.out.println
(subFile.getAbsolutePath()+" "+subFile.length());
}
}
}
}
Java从键盘读入int
参照http://www.weixueyuan.net/view/6046.html的说法:从键盘读入的数据是字符的字节码表示方式(?),如输入 26,只代表 2 和 6 两个字符的字节数据,而不是代表整数 26 的字节码。因此,想要从键盘得到整数需要先读取字符串,再利用其他方法将字符串转化为整数。
我暂时的做法:
// 1.通过Reader
// BufferedReader br = new BufferedReader
// (new InputStreamReader(System.in));
// int index = Integer.parseInt(br.readLine());
// 2.利用Scanner
// Scanner scn = new Scanner(System.in);
// int index = scn.nextInt();
System.out.println(index);