Java中的文件与IO流

一、File类

     1、java.io.File类
           代表硬盘上的一个文件或者文件夹(是java虚拟机与操作系统联系起来的桥梁)
           java中文件路径的表示方式
           Windows中表示   c:\suns.txt
           Java中表示的两种方式
            c:\\suns.txt
           c:/sun.txt

      2、File类的构造方法
            构造方法   File类没有无参构造方法
             File(String pathname)                //参数为文件的绝对路径
             File(String parent, String child)
             File(File parent, String child)

       3、File类的常用方法
             createNewFile():boolean             //创建文件,创建成功返回true,否则返回false
             mkdir() / mkdirs():boolean            //创建文件夹,创建成功返回true,否则返回false
             delete() :boolean                          //删除文件或文件夹,删除成功返回true,否则返回false  
             deleteOnExit():boolean                //虚拟机终止时,请求删除此抽象路径名表示的文件或目录
             exists() :boolean                           //判断文件对象是否存在,存在返回true,否则返回false
             isFile() :boolean                            //判断该文件对象是否为文件,是就返回true,否则返回false
             isDirectory() :boolean                   //判断该文件对象是否为文件夹,是就返回true。否则false                                                          getPath();String                            //创建时使用的是相对路径则返回相对路径,反之亦然
             getName():String                          //获取文件或文件夹的名字
             getParent() :String                        //获取父目录
             getAbsolutePath():String              //返回绝对路径
             list():String[]                                  //返回目录当前file对象代表的目录下所有文件、文件夹名                                                             listFiles();File[]                              //返回一个文件数组,里面存的是某个目录下所有的文件及文件夹                                

二、什么是java中的IO流

          I:即input,指的是从外界将数据输入到程序中。

         O:即output,指的是将数据从程序输出到外界。

         流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出。程序本身不需要缓冲区,所有的缓冲都由系统提供。

三、IO流的分类

        按照流的方向:输入流(inputStream)和输出流(outputStream)。
        按照实现功能分:节点流(可以从或向一个特定的地方(节点)读写数据。如 FileReader)和处理流(是对一个
已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如 BufferedReader。处理流的构造方法总是要
带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。)
        按照处理数据的单位:字节流和字符流。字节流继承于 InputStream 和 OutputStream,字符流继承于
InputStreamReader 和 OutputStreamWriter。

       主要分为字符流与字节流:

        字符流:就是按照字符为处理单位的数据流,一般用于对文档或文字、字符叫多的文件。

        字节流:就是按照字节为处理单位的数据流,可以用于对文档、图片、音频、视频的处理。

         

四、如何使用IO流

       使用IO流的步骤如下

        1,确定源,确定源头,即流的流向,通常配合File进行确定。

        2,选择流,不同的IO流适合不同的情况,我们可以根据具体情况,选择最适合的流。

        3,进行操作,对获取到的数据进行操作。

        4,关闭流,使用结束后,关掉输入输出流

具体用法如下所示:

提示:其他的流用法与之相同,读者可以自行试验

五、乱码问题

     1,乱码产生的原因

     编码时采用一种字符集,但是解码时使用了其他的字符集

     2、字符编码 (Character encoding)、字集码是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数串行、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。
     3、常见的 编码规范(字符集)
           ASCII:长度是一个字节,共8位,最多可以表示256个字符
           ISO-8859-1:通常叫做Latin-1,属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列
           GB2312/GBK:汉字的国标码,专门用来表示汉字,是双字节编码,而英文字母和iso8859-1一致(兼容iso8859-1编         码)。其中gbk编码能够用来同时表示繁体字和简体字,而gb2312只能表示简体字,gbk是兼容gb2312编码的
           UTF-8:1到6个字节变长编码,可以用来表示/编码所有字符

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值