Java中流的概念和递归算法

文件类:

  java.io.File

    基本方法;

      geName: 获取文件名称

      getPath: 获取文件路径

      length: 获取文件大小

      isDirectory: 判断这个东西是不是一个目录

      isFile: 判断这个东西是不是一个文件

      listFiles: 获取当前这个路径下面所有的文件和文件夹

IO流

  什么是流

    流, 可以看成是一根管道, 用来读取文件的数据

    原始的数据都是用过二进制的形式来进行数据的传输,

    文件---10111010-->程序

    文件<--10111010---程序

  流的分类

    按照数据流的方向

      输入流(Input), 输出流(Output)

        输入流: 从文件往程序走数据

      输出流: 从程序往文件走数据

    按照处理数据的单位不同:

      八大数据类型所占字节数:

        byte(1), short(2), int(4), long(8)

        float(4), double(8)

        boolean(1)

        char(2)

      字节流(以stream结尾的), 字符流(以Reader, Writer结尾的)

        字节流: 一个字节占8位, 以一个字节为单位读数据

        字符流: 一个字符占两个字节, 以一个字符为一个单位

    按照功能分

      节点流, 处理流

        节点流: 只有一个根管道套在文件上进行传输

        处理流: 将节点流处理一下, 增强管道的功能, 相当于在管道上套一层

  JDK提供的流

    提供了四个基本抽象类: InputStream, OutputStream, Reader, Writer

    InputStream的基本方法:
     int read(): 每次调用这个方法, 就读取一个字节, 以整数的形式返回

     int read(byte[] buffer---缓冲区): 让流每次读满一个缓冲区, 再统一处理, 先存在缓冲区里, 返回值int是返回实际当中读取了多少字节数(伤硬盘的原理)

     int read(byte[] buffer, int offset, int length): 也是一个缓冲区, 读取length长度的字节数, 存到buffer的缓冲区里, 从buffer的offset位置开始存,

       返回值是实际读了多少字节数

    close(): 关闭资源

  OutputStream的基本方法:

    void write(int b)

    void write(byte[] b)

    int read(byte[] buffer, int offset, int length)

    close()

    flush(): 将缓冲区中的文件全部写出

    在使用流的时候的一个良好的习惯, 先flush, 再close

  Reader的基本方法:

    int read()

    int read(char[] c)

    int read(char[] c, int offset, int length)

    close()

  Writer的基本方法

    void write()

    void write(char[] c)

    void write(char[] c, int offset, int length)

    // 直接写一个字符串出去, 字符串里面的有一个方法s.toCharArray(), 查API

    void write(String s)

    void write(String s, int offset, int length)

    close()

    flush()

  文件流(字节流, 字符流)

  缓冲流

  转换流--->字节-字符

  数据流--->八大数据类型

  Print流--->System.out.println();

  Object流--->

  递归实例:

package com.hanqi;

import java.io.File;

public class TestFileDiGui {
    public static void main(String[] args) {

        int a = 4;

         * 8*7*6....*1

        int j = fact(a);
        System.out.println(j);

        File file = new File("e:\\java\\folder");
        // System.out.println(file.exists());
        File[] files = file.listFiles();
        for (int i = 0; i < files.length; i++) {
            System.out.println(files[i].getName());
        }
        factFile(file, 0);
    }

    public static void console(int k) {
        for(int a=0;a<k;a++) {
            System.out.print("   ");
        }
    }

    public static void factFile(File file, int length) {
        if(file.exists() && file.isDirectory()) {
            File[] fs = file.listFiles();
            for(int i = 0;i<fs.length;i++) {
                console(length);
                System.out.println(fs[i].getName());
                factFile(fs[i], length + 1);
            }
        }
    }
    public static int fact(int i) {
        int result = 0;
        if(i==1) {
            return i;
        } else {
            result = i * fact(i-1);
        }
        return result;
    }

}
时间: 2024-12-20 01:33:07

Java中流的概念和递归算法的相关文章

Java中流的概念

http://wapwenku.baidu.com/view/04714847b307e87101f69656.html?ssid=0&from=1086k&uid=0&[email protected],[email protected]_2002,[email protected]_1_8.4_2_6.4&bd_page_type=1&baiduid=56F05653706D3FCEAB383E0A95BFD8DF&tj=wenkuala_2_0_10_

【J2EE之web应用】java集群概念

在学习web应用进行部署的时候,遇到一个名词java集群,(其实遇到很多名词╭(╯^╰)╮~~~),不懂意思就查一查!在这里做个笔记! 没有什么高深见解,就搞明白几个概念,java集群的特点 ,还有什么时候使用.这几个问题. 基本术语 如果查java集群概念同时又会得到很多术语,最主要的两个概念是:负载均衡和失效转移.字面意思分别是将请求进行分散和失效的方法或事务进行转移. 越来越多的企业关键应用都必须采用集群技术,实现负载均衡(Load Balancing).容错(Fault Toleranc

Java 线程?基本概念 可见性 同步

开发高性能并发应用不是一件容易的事情.这类应用的例子包括高性能Web服务器.游戏服务器和搜索引擎爬虫等.这样的应用可能需要同时处理成千上万个请求.对于这样的应用,一般采用多线程或事件驱动的架构.对于Java来说,在语言内部提供了线程的支持.但是Java的多线程应用开发会遇到很多问题.首先是很难编写正确,其次是很难测试是否正确,最后是出现问题时很难调试.一个多线程应用可能运行了好几天都没问题,然后突然就出现了问题,之后却又无法再次重现出来.如果在正确性之外,还需要考虑应用的吞吐量和性能优化的话,就

java学习----入门概念

1.关于java语言的基本概念 java,面向对象,跨平台,适合分布式计算,解释型语言,具有多线程处理能力和较高的安全性. JVM (java virtual machine) java虚拟机, 能够运行java bytecode的虚拟机,是java平台的一部分.JVM屏蔽来与具体os相关的信息,使得java 程序只需生成在java虚拟机上运行的bytecode 当我们运行一个程序时,JVM负责将字节码转换为特定机器代码 何为虚拟机?即抽象化的计算机 java平台: 用java语言编写的软件赖以

拨开云雾见天日 —— Java多线程编程概念剖析

说到Java多线程编程,大多数人都会想到继承Thread或实现Runnable编程,new 一个Thread实例,调用start()方法,由OS调用即可.具体过程如下: public class MyThread extends Thread {     @Override     public void run() {         System.out.println("MyThread");     }     public static void main(String[] 

java易混淆概念之类变量、成员变量、局部变量

java易混淆概念之类变量.成员变量.局部变量 类变量.成员变量.局部变量 类变量(也叫静态变量)是类中独立于方法之外的变量,用static 修饰.(static表示“全局的”.“静态的”,用来修饰成员变量和成员方法,或静态代码块(静态代码块独立于类成员,jvm加载类时会执行静态代码块,每个代码块只执行一次,按顺序执行)). 成员变量(也叫“实例变量”.“域”)也是类中独立于方法之外的变量,不过没有static修饰. 局部变量是类的方法中的变量. 看下面的伪代码说明: public class 

面向对象的编程思想和Java中类的概念与设计

面向对象的编程思想学习,面向对象内容的三条主线;1.java类及类的对象2.面向对象的三大特征3.其他关键字学习内容:3.1面向对象与面向过程面向对象与面向过程在应用上的区别 Java中类的概念与设计类与类之间的关系 面向对象的思想概述程序员从执行者转化为指挥着Java类及类的成员 原文地址:https://www.cnblogs.com/KeepCalmAndNeverSayNever/p/10111419.html

Java程序基本概念

大家好,在这里跟大家讲解一下关于Java程序的基本概念应用. 以下本人的介绍包括有以下的几点: 一.标识符的定义 二.数据类型的划分 三.运算符的应用 四.分支结构.循环结构.循环控制语法的应用 五.定义结构及方法重载的应用 下面将开始讲解对于这五大方面的了解 一.标识符的应用 Java的注释:总共有三个注释的方式,分别是://单行注释     /**/多行注释     /****...../文档注释 在Java编程中,最为关键的应用是注释的应用,在实际的开发合作中,对于每个程序员所编写的模块,

Java - 线程基本概念

[java并发编程实战]-----线程基本概念 线程状态图 说明:线程共包括以下5种状态.1. 新建状态(New)         : 线程对象被创建后,就进入了新建状态.例如,Thread thread = new Thread().2. 就绪状态(Runnable): 也被称为"可执行状态".线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程.例如,thread.start().处于就绪状态的线程,随时可能被CPU调度执行.3. 运行状态(Running)