第十四周总结 Io之文件流

I/O相关 输入/输出 流(数据流动)
数据流动的方向 读数据(输入input) 写数据(输出output)
文件流 字符流 数据流 对象流 网络流....

 1.什么叫文件
              一种电脑的存储方式
              文件有不同的格式   .txt .doc  .ppt  .mp4  .jpg  .rar ...
              文件夹?---目录路径
              File是一个类
              File----->与电脑上的文件或文件夹产生一 一对应的的映射关系
              1.java.io包中
              2.文件或目录路径名的抽象表示形式
              3.File与真实硬盘中的文件和文件夹 不是一个东西      
                File是在内存的一个对象<---映射--->硬盘上的文件或文件夹
              4.File类中的常用方法
                 canRead()   canWrite()  isHidden()  isFile()  isDirectory
                 length()获取文件中字节的个数
                 lastModified()获取文件最后的修改时间---->毫秒值
                 *String path = getAbsolutePath()  获取文件的绝对路径  D://test//Test.txt
                          绝对路径<-->相对路径
                          绝对路径可以通过完整的字符串 定位盘符 文件夹 文件
                          相对路径没有盘符的写法      当前工程()所在的位置去找寻
                 *String name = getName()获取文件的名字  Test.txt
                 *boolean = createNewFile()        创建新的文件
                 *boolean = mkdir                  创建新的文件     外层没有  不能创建
                 *boolean = mkdirs                 创建新的文件夹   外层没有  可以自动创建
                 *String pname = getParent()       获取当前file的父亲file名字
                 *File file = getParentFile()      获取当前file的父亲file对象
                 String[] names = list()           获取当前file的所有儿子名字
                 *File[] files = listFile()        获取当前file的所有儿子对象
                 *boolean = delete()               删除文件或空的文件夹 不能删除带元素的文件夹
 2.什么叫文件流  做什么  
          读取文件中的内容              向文件写内容
          文件输出流                   文件输出流     
          字节型文件输入流              字节型文件输出流  
          字符型文件输入流              字符型文件输出流  

File类的对象<----->本地硬盘文件
查看属性
创建新的文件 新的文件夹
查看父元素目录
文件夹的遍历 删除
file对象不能操作文件中的内容------>通过流I/o的方式来完成

       流按照方向(功能)来区分
                 in(读取)      out(写入)
       操作的目标来区分
                 文件流  数组流  字符串流  数据流  对象流  网络流。。。。
       学习文件流---->
                 顾名思义  读取文件中的信息in  将信息写入文件中out
                 文件流按照读取或写入的单位(字节数)大小来区分
                 
                 字节型文件流(1字节)
                           FileInputStream/FileOutputStream
                 字符型文件流(2字节--1字符)
                                FileReader/FileWriter
          容器
          1.变量  只能存一份
          2.数组  存储好多个  数据类型统一
          3.集合  存储好多个  存储后个数还能会改变   泛型---数据类型统一
          如上三个都是Java中的类型(对象-->内存)
          都存储在内存中  程序执行完毕  虚拟机停止的时候  内存空间就回收啦
          数据都是临时性存储的

          4.文件    存储好多信息
          文件是存储在硬盘上的--->永久性保存
          数据虽然是安全了
          文件毕竟不在内存了 需要通过io操作文件               JDBC
       
          字节型文件输入流
                   FileInputStream
                   1.包  java.io
                   2.了解一下继承关系  InputStream类 字节型输入流的父类
                   3.创建对象
                            调用一个带File类型的构造方法
                            调用一个带String类型的构造方法
                   4.常用方法
                            int code = read();      每次从流管到中读取一个字节  返回字节的code码
                            *int count = read(byte[]) 每次从流管道中读取若干个字节 存入数组
                            int count = availble();    返回流管道中还有多少缓冲的字节数
                            *skip(long n) 跳过几个字节 读取
                                     多线程----> 利用几个线程同时读取文件
                                     10000字节        5个小人同时读取
                                     1-2000  2001-4000  4001-6000  6001-8000  8001-10000
                            *close()  将流管道关闭--必须要做最好放在finally里 注意代码健壮性   判断严谨
          字符型文件输出流        
                    FileOutputStream 将数据写入文件中
                    1.java.io
                    2.继承OutputStream  所有字节型输出流的父类
                    3.创建对象
                               调用一个带File参数    还有File boolean重载
                               调用一个带String参数  还有String boolean重载
                    4.常用方法
                               write(int code);          将给定code对应的字符写入文件 '='
                               write(byte[])             将数组中的全部字节写入文件  getByte()
                               flush();                  将管道内的字节推入(刷新)文件
                               close();                  注意在finally中关闭
                               available();多少字节缓存    flush();
                               skip(long count)

         字符型文件流
                         FileReader                        FileWriter
                         只能操作纯文本文件(文件右键打开方式 记事本打开 能看懂)
                         .txt
             
                         FileReader
                         1.Java.io包
                         2.继承 InputStreamReader  Reader
                         3.构造方法
                                     read()
                                     read(char[])
                         FileWriter
                         1.java.io包
                         2.继承 OutputStreamWrite Writer
                         3.构造方法
                                   带file参数         带file,boolean
                                   带String参数       带String,boolean参数
                         4.常用
                                   write(int)
                                   write(char[])
                                   write(string)
                                   flush    close
原文地址:https://www.cnblogs.com/shsy/p/12034495.html