Java中I/O的InputStream流_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java中I/O的InputStream流

Java中I/O的InputStream流

 2018/10/22 9:18:33  andrew7676  程序员俱乐部  我要评论(0)
  • 摘要:1.Java中I/O的InputStream流1.使用InputStream流读取文件内容publicclassInputStreamTest1{publicstaticvoidmain(String[]args)throwsException{InputStreamis=newFileInputStream("c:/hello.txt");byte[]buffer=newbyte[200];intlength=0;while(-1!=(length=is.read(buffer,0,200)
  • 标签:Java
1. Java中I/O的InputStream流
class="java">
1. 使用InputStream流读取文件内容
public class InputStreamTest1 {
    public static void main(String[] args) throws Exception{
        InputStream is = new FileInputStream("c:/hello.txt");
        byte[] buffer = new byte[200];
        int length = 0;
        while(-1 != (length = is.read(buffer, 0, 200))){
            String str = new String(buffer,0, length);
            System.out.println(str);
        }
        is.close();    
    }
}

2. 使用InputStream流遍历文件夹结构,并排序
import java.io.File;
import java.util.ArrayList;
public class ListAllTest {
    // 用于判断目录或文件所处的层次
    private static int time;
    // 递归的方法
    public static void deepList(File file){
        if (file.isFile() || 0 == file.listFiles().length) {
            return;
        }
        else {
            File[] files = file.listFiles();
            files = sort(files);
            for (File f : files){
                StringBuffer output = new StringBuffer();
                if(f.isFile()){
                    output.append(getTabs(time));
                    output.append(f.getName());
                }else {
                    output.append(getTabs(time));
                    output.append(f.getName());
                    // 标识目录用,没有实际意义
                    output.append("\\");
                }
                System.out.println(output);
                if(f.isDirectory()){
                    time++;
                    deepList(f);
                    time--;
                }
            }
        }
    }
    // 整理文件数组,使得目录排在文件之前
    private static File[] sort(File[] files) {
        ArrayList<File> sorted = new ArrayList<File>();
        // 寻找到所有的目录
        for (File f : files){
            if (f.isDirectory()){
                sorted.add(f);
            }
        }
        // 寻找到所有的文件
        for (File f : files){
            if (f.isFile()){
                sorted.add(f);
            }
        }
        return sorted.toArray(new File[files.length]);
    }
    // 判断需要加多少 tab的方法
    private static String getTabs(int time){
        StringBuffer buffer = new StringBuffer();
        for (int i = 0; i < time; i++) {
            buffer.append("\t");
        }
        return buffer.toString();
    }
    public static void main(String[] args) {
        File file = new File("C:\\Documents and Settings\\Administrator\\My Documents\\JDdongdong\\JIMPersonal\\流年andrew");
        deepList(file);
    }
}
运行结果:
data\
    Message.db
    Profile.db
HeadImage\
Image\
    7CCFE52D-BBCC-48DA-A6F9-29251E4AC52B.png
Product\
    5459a447N250ba8e8.jpg
    55093e75N1743a6f2.jpg
RecvFile\
Temp\
上一篇: Java中其它输入输出流 下一篇: 没有下一篇了!
发表评论
用户名: 匿名