`

Java中I/O的InputStream流

    博客分类:
  • Java
阅读更多
1. Java中I/O的InputStream流

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对I/O流的处理

    Java中的I/O流处理是程序与外部设备交互数据的关键机制,包括从文件、网络、内存等数据源读取数据和向这些目标写入数据。I/O流系统在Java的`java.io`包中被实现,提供了丰富的类和接口来支持各种类型的流操作。 **I...

    java阻塞i/o与非阻塞i/o控制

    阻塞I/O模型是最常见的I/O模式,在Java中主要体现在`InputStream`和`OutputStream`等基本I/O类上。当一个线程调用read或write方法时,如果数据尚未准备好,那么这个线程会被挂起,即进入阻塞状态,直到数据准备就绪...

    java基础之I/O流

    Java中的I/O流是程序与外部数据交互的重要机制,它允许数据在程序、文件、网络等之间流动。I/O流分为两大类:字符流(Character Stream)和字节流(Byte Stream),每类又分为输入流(Input Stream)和输出流...

    Java I/O 过滤流-带格式的读写操作

    过滤流(Filter Stream)是Java I/O框架中的一个重要概念,它提供了一种优雅的方式来进行数据的读写操作,同时允许我们添加额外的功能,如字符编码转换、数据压缩等。本篇文章将深入探讨Java I/O中的过滤流,以及...

    Java I/O, 2nd Edition

    2. **标准I/O库**:详细讲解了java.io包中的类和接口,如File类用于文件的创建、读写和删除,InputStream和OutputStream是所有字节流的基类,Reader和Writer则是字符流的基类。此外,还有ObjectInputStream和...

    java数据流 I/O系统

    在Java中,I/O操作是通过数据流的概念来实现的。 数据流的基本概念涉及数据的流动方向和组织层次。数据流可以分为输入数据流和输出数据流,前者只能读取数据,后者只能写入数据。在Java中,`java.io`包提供了这些...

    java中I/O的t经典ppt

    在Java中,I/O是通过一系列流(Stream)类来实现的,这些类允许数据从一个源头(如键盘、文件、网络连接)传输到目的地(如显示器、文件、网络)。下面我们将详细探讨Java I/O系统的关键知识点。 1. **流的分类**:...

    Java I/O, NIO and NIO.2

    Java I/O 包含了用于读写文件、网络通信、字符流和字节流的各种类,如InputStream、OutputStream、Reader、Writer以及它们的子类。例如,FileInputStream和FileOutputStream用于文件操作,SocketInputStream和...

    Java I/O编程 java

    在Java I/O编程中,理解不同类型的流及其用途至关重要。字节流和字符流分别处理二进制和文本数据,过滤流提供了额外的功能,管道流实现了线程间的通信,对象流使得对象可以持久化。掌握这些基础,开发者能够有效地...

    怎么使用I/O编程???

    在Java编程中,I/O(Input/Output)处理是与外部世界交互的关键技术,涉及文件读写、网络通信等场景。I/O的核心思想是通过流(Stream)来传输数据,使得程序能从数据源读取数据或将数据写入目标。 **1.1 I/O简介** I...

    深入分析 Java I/O 的工作机制(转载)

    Java I/O(输入/输出)系统是Java编程语言中用于处理数据流的重要组成部分,它允许程序与外部资源如文件、网络、硬件设备等进行交互。深入理解Java I/O的工作机制对于开发高效、可靠的系统至关重要。以下是对Java I/...

    关于I/O流读写文件

    在Java中,I/O流是通过流的概念来实现的,流是一种抽象表示,用于表示输入设备或输出设备。根据不同的功能,I/O流可以分为输入流和输出流两种。 输入流 输入流是用于读取数据的流,常用的输入流有InputStream、...

    java I/O类的使用

    Java 1.0 和 1.1 中的I/O类主要是基于两个基础类:`InputStream`和`OutputStream`,它们处理字节流。`InputStream`家族包括了如`ByteArrayInputStream`、`FileInputStream`等,它们分别从字节数组或文件中读取数据。...

    Java I/O系统

    在Java中,I/O系统基于流的概念,流可以被视为数据的流动渠道,既可以用来读取数据(输入流),也可以写入数据(输出流)。本篇文章将深入探讨Java I/O系统的核心概念、主要类库以及常见使用场景。 首先,Java I/O...

    Java I/O层次结构详解

    - **流(Stream)**:Java I/O中的流分为字节流(Byte Stream)和字符流(Character Stream)。字节流处理单个字节的数据,如InputStream和OutputStream家族;字符流处理Unicode字符,如Reader和Writer家族。 - **...

    Javaio流思维导图

    Java I/O 流是Java平台中的一个重要组成部分,它在处理数据输入和输出方面扮演着核心角色。I/O流系统提供了一种标准化的方式来读取、写入数据,无论是从磁盘、网络、内存还是其他类型的输入输出设备。在这个思维导图...

    Java I/O详细笔记

    Java I/O系统主要涉及四种基本的流分类方式:根据数据流动的方向、数据处理的类型、流处理的源以及是否使用了缓冲机制。 **1. 按数据流动方向** - **输入流(Input Stream)**:主要用于从某个数据源中读取数据,...

    java i/o 实例 编程 学习 教程 复习

    Java 的 I/O 主要分为两大类:`InputStream` 和 `OutputStream` 用于处理字节流,而 `Reader` 和 `Writer` 则用于处理字符流。 #### 二、Java I/O 示例代码详解 下面我们将对提供的代码片段进行逐段分析。 ##### ...

    Java I/O总结

    5. **装饰者模式的应用**:在Java I/O中,装饰者模式被广泛应用于构建复杂的流管道,如上文中提到的`BufferedReader`就是一个典型的例子,它装饰了一个`InputStreamReader`,后者又装饰了一个`InputStream`。...

Global site tag (gtag.js) - Google Analytics