美文网首页
2020-05-05

2020-05-05

作者: Hoffnung_8164 | 来源:发表于2020-05-05 21:46 被阅读0次

1、线程池

        理解为一个容器,装有预先创建好的线程对象,执行任务。执行后归还给线程池等待下次的任务。降低了程序的开销:频繁的创建和销毁线程对象。。

    Executor:接口

    ExecutorService:线程池接口

    Executors:工厂类(专门负责创建线程池的)

            ExecutorService es = Executors.newFixedThreadPool(n);

            ExecutorService es = Executors.newCachedThreadPool();

        创建任务:实现Runnable接口

            submit();//将任务提交给线程池,由线程池负责分配线程对象来执行任务。。

2、File类的操作

    描述文件和目录

            文件:带后缀的,存储数据。靠后缀区分。

                mp3:音频文件,mp4:视频文件,jpg/png/gif...图片文件,txt:文本文档,java文件:

            目录:用于存储文件和目录的。

    路径:描述文件或文件夹位置

        绝对路径:C:\Ruby\pro\aa\abc.txt

        相对路径:aa

        程序来讲:永远相对于项目目录

            File("aa\abc.txt");

            在项目目录下:aa文件夹,里面abc.txt

构造方法:File类的对象:

        File(String path);

        File(String parent,String child);

        File(File parent,String child);

常用方法:

    文件:

            boolean  createNewFile();//用于创建一个新文件

            long  length();//用于获取一个文件的大小,字节

   目录:文件夹

            boolean  mkdir();//用于创建一层文件夹

            boolean  mkdirs();//用于创建多层(不存在的但是必须有)

            String[] list();//获取目录中的子内容(文件,文件夹),只获取一层。如果作用文件上,返回null。

            File[] listFiles();//

            listFiles(FileFilter);//接口:文件过滤器:accept(File)-->boolean

    两者皆可:

            delete();//文件或文件夹(空文件夹才可以)

            deleteOnExit();

            exists();//判断file对象对应的文件文件夹,是否存在

            isFile()-->boolean,判断是否是文件

            isDirectory()-->boolean,判断是否是目录

            canRead()

            canWriter()

            getName();//文件或目录的名称

            getPath();//获取文件或目录的路径

            getAbsolutePath();//获取绝对路径,从根盘符开始描述

            getAbsoluteFile();//File

           getParent()-->String

            getParentFile()-->File

            toString()-->String,重写Object类的toString(),文件的路径名

3、IO初识

    I/O流

        I:Input

        O:Outout

        流:Stream,数据

    IO流:流的就是数据。用于将数据从一个地方流到另一个地方。

            文件——>程序

            程序——>文件

            网络——>程序

           程序——>网络

流的分类:

    流向:

        输入流:数据从外边进入到程序中。。读取数据

        输出流:数据从程序中出去。。写出数据

    单位:

        字节流:以字节为单位。

        字符流:以字符为单位。

    数据的本质都是01码。8个01码——>byte字节。字节流是一个最根本的流。

    功能:

        节点流:直接接触数据源的流

        处理流:套在流上的流。又叫过滤流。

    File,String,Date,Thread。。。

    FileInputSteram,BufferedInputStream,BufferedOutputStream,ObjectInputStream,DataInputStream,ByteArrayInputStream。。。。

2.1、4大基类流

        InputStream,字节输入流:抽象的

        OutputStream:字节输出流:抽象的

        Reader:字符输入流:抽象的

        Writer:字符输出流:抽象的

2.2、IO流的操作步骤

        step1:确定数据从哪到哪。文件信息。

        step2:创建流:

                流向:输入,输出

                单位:字节,字符

                子类流:文件,内存。。。。

        step3:操作流

                读取数据:输入

                read()

                写出数据:输出

                write()

        step4:关闭流

                close()

2.3、FileInputStream

        用于以字节为单位,读取文件中的数据,到程序中。

        1、构造方法:

                FileInputStream(Stringname)

                        通过打开与实际文件的连接来创建一个FileInputStream,该文件由文件系统中的路径名name命名。

                FileInputStream(Filefile)

                        通过打开与实际文件的连接创建一个FileInputStream,该文件由文件系统中的File对象file命名。

                read()-->int

                        每次读取一个字节。返回值就是读入的数据本身。如果读到文件的末尾了,-1。

                read(byte[] bs)-->int

                        每次读取多个字节,最多是bs数组的长度个。返回值是本次读取的实际的字节个数。如果到达末尾,-1.

                int read(byte[] bs, int off, int len)

                        从该输入流读取最多 len字节的数据为字节数组 。第一个参数表示要存储本地读取的数据的数组,第二个参数,表示从哪个下标开始存储,第三个参数是表示本次读取预计的读取数量。该方法的返回值是本次读取的实际数量。如果到达文件末尾,-1。

                byte[] bs = new byte[3];//内存资源

int read(byte[] bs) -->读多个,最多数组长度,实际看返回值,数据在数组中,将读取到的数据存入到数组中,默认从头开始存储。

        在操作IO流读取本地文件的数据,提升效率。

            硬盘和内存

                    read()-->每次读取一个数据,

                    read(byte[] bs)--> 1000

每次读取一个字节:

使用字节数组作为缓冲区,读取数据:

2.4、FileOutputStream

    构造方法:

            FileOutputStream(String name) ,在文件开头写,擦除写

                    创建文件输出流以指定的名称写入文件。

            FileOutputStream(String name, boolean append) ,在文件的末尾写数据,追加

                    创建文件输出流以指定的名称写入文件。

            FileOutputStream(File file) ,在文件开头写,擦除写

                    创建文件输出流以写入由指定的 File对象表示的文件。

            FileOutputStream(File file, boolean append) ,在文件的末尾写数据,追加

                    创建文件输出流以写入由指定的 File对象表示的文件。

  写出去的数据,是清空写。将文件中原来的数据全部擦除,从头开始写数据。

            voidwrite(intdata),将参数,这个字节数据写出去

            voidwrite(byte[]b),将b.length个字节从指定的字节数组写入此文件输出流。

            voidwrite(byte[]b,intoff,intlen) ,将len字节从位于偏移量off的指定字节数组写入此文件输出流。

            String--->byte[]

            String--->char[]

相关文章

网友评论

      本文标题:2020-05-05

      本文链接:https://www.haomeiwen.com/subject/rtnvghtx.html