I/O流

一,File

  1.1,此类是用来对文件进行操作的,但不能操作文件中的内容

  1.2 ,api,构造方法 File file = new File(String path+文件名);

          String   getName()获取文件或目录的名称

           long  length()得到文件的长度

         boolean isDirectory();判断是否为目录(文件夹)

         boolean exists():判断文件或目录是否存在

        boolean  createNewFile();创建新的文件,创建成功返回true,失败返回false

       boolean mkdir():创建次抽象路径指定的目录

       boolean mkdirs():创建此抽象路径指定的目录,包含所有必需但不存在的父目录

        boolean delete():删除此抽象路径名表示的文件和目录

       String getParent();返回文件父目录名称,若没有返回null

     long getTotalSpace():返回此抽象路径名指定的区分大小

      long getUsableSpace():返回此抽象路径名指定的区分上可用于次虚拟机的字节数

      int hashCode():计算此抽象路径名的哈希码

二,IO:Input/Output

  输入:读操作

    是将程序中的内容读取到程序中

  输出:写操作

     是将程序中的内容写到磁盘上

在流进行读写操作的时候,便于文件了一条管道,所以使用完流以后,要关闭。

2,IO流的分类

  1)按照流向分

     输入流和输出流

2)按照单位分

    字节流和字符流

3)按照功能分

   高级流和低级流

3,字节输入输出流InputStream和OutputStream

   InputStream和OutputStream是两个抽象类,它是字节输入输出流的顶级父类

3.1,FileInputStream和FileOutputStream(低级流)

   文件字节输入输出流,用于向文件中写入或从文件中读取字节,如果已经读到该文件的末尾,则读方法返回-1

   FileOutputStream中的write(int)返回值为void

   FileInputStream中的read()返回值为int型

   FileOutputStream的构造器:new FileOutputStream(String path,boolean true),追加写

                                                 new FileOutputStream(String path)覆盖写

3.2 BufferedInputStream和BufferedOutputStream(高级流)

    缓冲字节输入输出流内部维护了一个缓冲区,缓冲区默认的大小为8k,当我们读取到的内容先方法缓冲区中,当缓冲区满了以后,会一次性将数据写到硬盘上,

  1)如果我们设置的字节数组的大小大于缓冲区默认的大小,则缓冲区失效,直接从硬盘上读取

  2)如果设置的字节数组的大小小于缓冲区的大小,那么会先从缓冲区读取

3.3DataInputStream和DataOutputStream(高级流)

  可以操作所有的基本数据类型,而且用此流复制的音频和视频不会出现内容丢失

写操作:void write(int a):写入4个字节

               void write(byte[] b):写一个字节

                void writeDouble(double d):写8个字节

                 void writeUTF(String s):写一个字符串

3.4,ObjectInputStream和ObjectOutputStream(序列化)

    写操作:void writeObject(object o):将o对象写入到文件中有一个要求

      要求:o所对应的类实现序列化接口,且在读操作的时候,该类的序列号要一致,否则会出现异常

    用transint:修饰的被忽略,瘦身的意思

   读操作:Object readObject()

 

4,字符输入输出流(Reader/Writer)***复制音频和视频不能用字符流,因为复制音频和视频的时候也是转换成字节,所有会有                                                                   偏差,但试用于文本复制,效率高

InputStreamReader和OutputStreamWriter

 写操作: void write(int a):将int值的“低16位”写入到文件中

                void write(char[] cs):将字符数组写入到文件中

  BufferedReader/PrintWriter

   写操作:void println():将一行数据写入到文件中

   读操作: String readLine();从文件读取一行内容

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值