io

来源:互联网 发布:几大网络手机卡对比 编辑:程序博客网 时间:2024/05/29 10:54
之前一直对io 数据流的 文件流部分不太理解  file ,fileRead,fileinputstream 等几个类的功能作用有点迷糊,经过半天的百度学习,终于有所收获。
  
      首先 什么是流: 流是一个抽象概念,直白点,他就是一个过程,是一个从后备储存器读取数据和写入数据的过程,当然在写入和读取的中间,还有一个数据处理的过程。 流,他作为一个过程,也有自己的存储空间,他的存储空间就相当于一个管道。将数据放入管道的过程就是new 流的过程,比如需要将一个文本文件的内容读取并打印出来,(考虑到是打印内容,所以不能用字节流,因为字节流打印出来的是还未编译的二进制数据,所以要用字符流)于是我们可以这样写: new fileRead(''1.txt"); 这句代码的意思就是:将1.txt的文件内容放入 file这个文件流中,就相当于放入了管道。
      文件:从初中就开始听所文件这个名词,一直都将文件作为一个抽象的概念放入脑海中,知道今天才明白什么是文件。文件,其实就是一组集合,什么样的集合? 将有意义的一段二进制数(字节)放在一起,组成的集合就是文件。 那么文件有很多种类,视屏文件,音频文件,还有apk文件。事实上,可以将他们分为俩种文件,既文本文件和非文本文件。文本文件和非文本文件的区别在于他存储的数据形式不同,虽然他们都是以二进制数存储,然而对于数据的数据块上,存在区别。文本文件的数据块只能是字节类型,但是非文本类型的文件,其数据块,可以是16位short 类型,也可以是32位int类型。字节是最小的数据块,也就是最小的存储单位,虽然比特更小,但是比特是计算机处理数据的单位。

      还有一个更重要的就是,二进制是与编码无关的数据,国际通用,如果在数据传输时,想要读取查看数据,就需要将字节流转换为字符流。
       putstream 类则是字节流 :
                                        inputstream 读取字节流  ,就是读取字节的管道,将数据放入这个字节流中(管道),就可以从这个管道中读取
                                         字节,而fileinputstream ,就是将文件中的内容以字节形式读取。

                             例:fileinputstream("1.txt"),从1.txt这个文本文件中按照字节方式读取文件

                                   同理,outputstream是写入后备存储的管道,在new 他的时候,必须给他一个存储空间,如文件。就是说他的构造                       
                                    器的参数必须是一个存储空间。将这个空间放入outputstream 这个管道流,然后调用他的write(参数--写入的数               

                                    据)方法,将值写入这个空间中。

io流的常用类

InputStream  

   抽象类 ,必须通过它的具体实现类工作

        常用方法: 

                              1: close()  guanbi关闭该输入流,并释放所有与该流相关的系统资源

                              2: read() 从数据中读取下一字节

                              3:read(char[] ch) 从数据中读取下一个字节,并存在ch数组中

                              4:read(char[] ch,int setoff,int length) 尝试从输入流中读取length个字节存入数组,可以读取比length少的字节 返回实际读取到的内容

                       

        


OutputStream

             抽象类             write(int  length)将int值写入此流


InputStreamRead

               

                                     read() 从数据中读取下一字节                             

                                     read(char[] ch,int setoff,int length) 尝试从输入流中读取length个字节存入数组,可以读取比length少的字节 返回实际读取到的内容


BufferedRead   

                       

                                     read() 从数据单个字符                           

                                     read(char[] ch,int setoff,int length) 尝试从输入流中读取length个字节存入数组,可以读取比length少的字节 返回实际读取到的内容

                                      readLine()读取一行

BufferedWriter

                                       常用方法: 

                                      1:close()  关闭此流

                                       2:flush() 刷新该流的缓冲,将缓存的数据写入文件中

                                       3:newLine() 写入一个行分割符

                                       4:writer(int c)写入单个字符

                                       5:write(string ser)写入单个字符

                                       6:write(String str,int setoff, int  length)将String的部分区域写入流中,setoff偏移量, length长度                                                                                    

PrintWriter

                               

                                       1:close()  关闭此流

                                       2:flush() 刷新该流的缓冲,将缓存的数据写入文件中

                                       3:print()   println()      write()  int/string /duoble/float/char/ char[]/boolean

                                       4:format(String format, object o)使用指定的格式化字符串和参数,将一个格式化字符串写入write中

                                 



file

          1: exists() 测试此抽向路径表示的目录或文件是否存在

          2: isFile() 判断此抽象路径是否表示一个文件

           3:isDirectory() 判断此抽象路径表示的是否是一个目录

           4:mkdir() 创建此抽象路径表示的目录

          5: mkdirs() 创建此抽象路径指定的目录,若果此目录的父目录没有,也创建

          6: createTempFile(String prefix,String suffix,File)在file指定的目录下根据前缀prefix(前缀名要大于三个字符),后缀suffix 创建一个文件

          7: createNewFile() 当且仅当不具有此抽象路径表示的文件时,创建一个文件

          8: toString()  返回此抽象路径名的字符串;

          9: delete() 删除此抽象路径表示的文件或目录;

               

                

FileInputStream

               


FileOutputStream


FileReader

        

        

FileWriter















0 0
原创粉丝点击