zoukankan      html  css  js  c++  java
  • 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;
        }
        
    }
  • 相关阅读:
    ElasticSearch 安装 go-mysql-elasticsearch 同步mysql的数据
    ElasticSearch 安装 elasticsearch-analysis-ik分词器
    Centos6.5 (或Linux) 安装Elasticsearch
    Centos6.5安装mysql 5.7
    3、使用Oracle Logminer同步Demo
    2、Oracle Logminer性能测试
    1、图解Oracle Logminer配置使用
    springmvc+mybatis+redis的session共享+maven管理
    CentOS安装nginx以及负载均衡的搭建
    java使用jedis访问CentOS中的redis
  • 原文地址:https://www.cnblogs.com/bekeyuan123/p/6925691.html
Copyright © 2011-2022 走看看