Java的I/O流

现在动手写写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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值